tsc/contributing.md
Siobhan McKeown 2f9830343a
Full update of contributing.md
Signed-off-by: Siobhan McKeown <siobhan.mckeown@gmail.com>
2025-06-05 14:15:56 +01:00

160 lines
4.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# The Technical Steering Committee and How to Participate
To learn about the different contribution pathways you can take, you can read [about how to get started](../getting-started) which has more detail about how you can contribute to the project
## Contributions
There are many ways to contribute to the project. You can:
- Contribute with a pull request
- Join a discussion on a ticket
- Join a working group
- Contribute to documentation
- Help with developer engagement
---
## Active Working Groups
Active working groups should be listed here. It is the responsibility of the working group **Organizer** to list the project here while it is active.
**Current active working groups are:**
- [Technical Independence](https://github.com/fairpm/fair-plugin) - responsible for developing a solution to independence from the existing central WP server
- [FAIR](https://github.com/fairpm/fair-protocol) - responsible for the development and operation of The FAIR Package Manager, including server infrastructure, protocol design, and a connector plugin.
- [Community](https://github.com/fairpm/tsc) - a documentation, governancem and process-focused initiative to support contributor onboarding and clarify how to engage with the FAIR Package Manager project
Each working group has its own repository for working on its deliverables.
---
## Code Signing
When committing code to a Project repository, you need to sign your commits by adding this to your commit messages:
```
Signed-off-by: Author Name <authoremail@example.com>
```
If you're unfamiliar with signing commits, here are some resources:
- [Script it](https://stackoverflow.com/a/46536244/2575)
- Cursor/VSCode: go to `Extensions -> Git` and check the option (globally or per project)
- CLI:
```bash
git commit -s
```
---
## Legal Requirements
[To be updated]
### Licensing & Copyright
- You **retain copyright**
- Code contributions must use the **GNU GPL v2 license**
- Docs and content: **Creative Commons Attribution 4.0**
- All code contributions must include a **DCO sign-off**
- Sign-off applies to your employer if applicable
- Project releases use **GPL v2**
- Will follow Upstream Project license terms
- **License exceptions** require a two-thirds TSC vote
- Files should use **SPDX identifiers**
---
## Technical Steering Committee (TSC)
The TSC governs the project, ensures progress, and adheres to governance practices.
### Composition
- **TSC Chair(s)** One or three (voting)
- **Organizers** Appointed maintainers and leaders (voting)
- **Contributors** Community members in any capacity (non-voting)
TSC involvement includes all aspects of the project: code, documentation, marketing, accessibility, and more.
### Responsibilities
- Coordinate project direction
- Approve proposals (new ideas, deprecations, scope changes)
- Manage sub-projects
- Create working groups for technical issues
- Appoint collaboration representatives
- Define norms, workflows, release, and security policies
- Set contribution guidelines and resolve issues with the Series Manager
- Vote on multi-project-impacting changes
- Lead marketing, events, and outreach
---
## Project Roles
### Contributor
Anyone contributing in any form, including:
- Code
- Documentation
- Training materials
- Project management
- Translation
- Architecture
- Support
> Contributors are **non-voting members** of the TSC.
### Organizer
Contributors elevated to leadership roles:
- Modify/approve repository content
- Lead contributors or working groups
**Becoming an Organizer:**
- Requires majority approval of existing Organizers
**Removal:**
- Requires majority vote of existing Organizers
> Voting rights limited: related companies can only use up to **30%** of the TSCs total votes.
### TSC Chairs
The TSC decides whether to have 1 or 3 chairs. They:
- Run TSC meetings
- Ensure voting process adherence
- Act as primary liaison with the governing board
- May be non-developers
- Cannot all be from the same company (if 3 co-chairs)
> Current TSC Chairs are **interim** until **June 2025**, after which elections will be held.
---
## Voting Process
- Consensus is preferred
- When necessary, TSC votes: 1 vote per member
- **Quorum**: 50% of voting members required
- **Majority vote** to pass decisions
- Asynchronous voting allowed with:
- 50% participation
- Clear deadline
- Unresolved issues can be escalated to the **Series Manager**
---
## Code of Conduct
We want our project to be **welcoming and inclusive**. All project members must adhere to our Code of Conduct.
👉 **[View the full Code of Conduct here](/../code-of-conduct.md)**
---