|
| 1 | +# **Project Tangle Governance** |
| 2 | + |
| 3 | +## **Tangle Software Vision** |
| 4 | + |
| 5 | +The Tangle system helps users create and run ML experiments and production pipelines. Any batch workflow that has beginning and end can be orchestrated via a pipeline. |
| 6 | + |
| 7 | +## **Tangle Project Governance Vision** |
| 8 | + |
| 9 | +Grow the project in a manner that welcomes a wide community of stakeholders and enables the future handoff to a vendor-neutral non-profit foundation. |
| 10 | + |
| 11 | +## **Purpose and scope** |
| 12 | + |
| 13 | +* This document outlines the governance model for the Tangle project, including how decisions are made and how various community members can get involved. |
| 14 | +* Applies to all repositories under https://github.com/TangleML and affiliated tooling, documentation, and community channels. |
| 15 | + |
| 16 | +## **Values** |
| 17 | + |
| 18 | +* Transparency: Decisions and rationales are public and recorded. |
| 19 | +* Inclusivity and neutrality: Multiple organizations and independent contributors can participate meaningfully. |
| 20 | +* Security and quality: Changes meet defined standards and guardrails. |
| 21 | +* Sustainability: Reduce single-maintainer/vendor risk and build a healthy maintainer pipeline. |
| 22 | + |
| 23 | +## **A three-pillar governance model** |
| 24 | + |
| 25 | +1. Alexey Volkov @Ark-kun \- founder and Project Lead. |
| 26 | +2. Open Source Community \- can contribute code, become maintainers and join Technical Steering Committee (TSC) once it is formed. |
| 27 | +3. Shopify \- initial sponsor, administrator of GitHub & security response, owner of domains and trademarks. |
| 28 | + |
| 29 | +## **Project structure** |
| 30 | + |
| 31 | +* License: Project consists of Open Source Software licensed under the Apache License, version 2.0 in `LICENSE`. |
| 32 | +* Components: |
| 33 | + * [tangle](https://github.com/TangleML/tangle) \- Tangle is a web app that allows the users to build and run Machine Learning pipelines without having to set up a development environment. |
| 34 | + * [tangle-ui](https://github.com/TangleML/tangle-ui) \- Tangle frontend code \- based on Cloud Pipelines Studio |
| 35 | + * [website](https://github.com/TangleML/website) \- The source code for [TangleML.com](https://TangleML.com) |
| 36 | +* Releases: |
| 37 | + * [https://github.com/TangleML/tangle/releases](https://github.com/TangleML/tangle/releases) |
| 38 | + * [https://github.com/TangleML/tangle-ui/releases](https://github.com/TangleML/tangle-ui/releases) |
| 39 | + * [https://huggingface.co/TangleML](https://huggingface.co/TangleML) |
| 40 | + * PyPI (details TBD) |
| 41 | +* Documents: `LICENSE`, `CONTRIBUTING.md`, `SECURITY.md`, `RELEASING.md`, `TRADEMARK.pdf` |
| 42 | + |
| 43 | +## **1\. Roles** |
| 44 | + |
| 45 | +This project formally recognizes the following roles. |
| 46 | + |
| 47 | +### **👤 Everyone (Users)** |
| 48 | + |
| 49 | +Anyone who uses the project is a community member. We value your contributions, and you are encouraged to: |
| 50 | + |
| 51 | +* Use the software. |
| 52 | +* Provide feedback and report bugs by opening Issues. |
| 53 | +* Join community discussions (e.g., on GitHub, Slack, or mailing lists). |
| 54 | +* Advocate for the project. |
| 55 | + |
| 56 | +### **🧑💻 Contributors** |
| 57 | + |
| 58 | +A **Contributor** is anyone who makes a contribution to the project. Contributions can include: |
| 59 | + |
| 60 | +* Submitting code via a Pull Request (PR). |
| 61 | +* Improving documentation. |
| 62 | +* Reviewing PRs from other contributors. |
| 63 | +* Triaging issues and helping other users. |
| 64 | + |
| 65 | +Contributors are expected to follow the project's [Contributing Guidelines](https://github.com/TangleML/tangle/blob/master/CONTRIBUTING.md). |
| 66 | + |
| 67 | +### **🧑🔧 Maintainers** |
| 68 | + |
| 69 | +**Maintainers** are active and trusted contributors who have demonstrated a long-term commitment to the project. They have **write access** to the repository and are responsible for its day-to-day health. More details on how to become a project maintainer are listed below. |
| 70 | + |
| 71 | +**Responsibilities:** |
| 72 | + |
| 73 | +* Reviewing and merging Pull Requests. |
| 74 | +* Guiding the project's technical direction. |
| 75 | +* Triaging and managing issues. |
| 76 | +* Helping new contributors. |
| 77 | + |
| 78 | +The current list of Maintainers is: |
| 79 | + |
| 80 | +* *tangle* |
| 81 | + * @Ark-kun |
| 82 | +* *tangle-ui* |
| 83 | + * @Ark-kun |
| 84 | + * @camielvs |
| 85 | + * @maxy-shpfy |
| 86 | + * @Mbeaulne |
| 87 | +* *website* |
| 88 | + * @Ark-kun |
| 89 | + * @maxy-shpfy |
| 90 | + |
| 91 | +### **🚀 Release Managers** |
| 92 | + |
| 93 | +* Coordinate releases, tags, changelogs, artifact signing, and backports. |
| 94 | +* Operate per `RELEASING.md`. |
| 95 | +* The Release Managers is a subset of the maintainers that are assigned additional system permissions to perform the release process. (for example to publish to PyPi) |
| 96 | + |
| 97 | +### **🛡️ Security Team** |
| 98 | + |
| 99 | +* Receives and triages private vulnerability reports; coordinates fixes and advisories. |
| 100 | +* Operates per `SECURITY.md`; may include external members approved by the Project Lead or TSC. |
| 101 | + |
| 102 | +### **👑 Project Lead** |
| 103 | + |
| 104 | +For a new project, transparency is key. Tangle has been started with a Project Lead to drive the project. The project and Project Lead are supported by Shopify. |
| 105 | + |
| 106 | +The **Project Lead** is responsible for the overall strategic vision of the project and for making final decisions when community consensus cannot be reached. |
| 107 | + |
| 108 | +* **Project Lead:** Alexey Volkov @Ark-kun |
| 109 | + |
| 110 | +As the project grows, this role will be retired and transferred to a Technical Steering Committee. |
| 111 | + |
| 112 | +### **🏛️ Technical Steering Committee (TSC)** |
| 113 | + |
| 114 | +The Technical Steering Committee will grow as an organizationally diverse set of maintainers is achieved. Once the size of the TSC reaches 10, the Project Lead role will become an elected role with a 1 year term. The Project Lead chairs the TSC and can appoint new members from the current Maintainers. Once the TSC has 5 members, voting will be introduced to elect new members for 1 year terms. |
| 115 | + |
| 116 | +* Size: 3-10 members, growing with the size of the project. Composition aims for diversity across organizations and expertise. |
| 117 | +* Responsibilities: Strategy, roadmap approval, governance changes, tie-break decisions, high-impact/controversial changes. |
| 118 | +* Publishes meeting notes and decisions. |
| 119 | +* Members of the TSC are a subset of the project Maintainers chosen to represent different community stakeholders. (To retain their TSC seat, TSC members must maintain active maintainer status) |
| 120 | + |
| 121 | +As a reflection of the three pillars vision, 3 seats on the TSC will represent the 3 pillars of Community, Shopify and the Project Leader. |
| 122 | + |
| 123 | +## **2\. Decision Making** |
| 124 | + |
| 125 | +This project operates on a **consensus-seeking** model. We try to find solutions that most members can agree with. |
| 126 | + |
| 127 | +### **Day-to-Day Decisions (Pull Requests)** |
| 128 | + |
| 129 | +1. **Pull Requests** are the primary method for making changes. |
| 130 | +2. PRs should be reviewed by at least one Maintainer who is not the author. |
| 131 | +3. If a PR is straightforward (like a bug fix or documentation) and receives an approval, it can be merged by a Maintainer. |
| 132 | +4. The author of a PR should generally not merge their own PR unless it's a critical fix or they have received explicit approval from another Maintainer. |
| 133 | + |
| 134 | +### **Major Changes & Disagreements** |
| 135 | + |
| 136 | +For substantial changes (e.g., new features, API changes, or changes to the project's direction), a more formal process is used: |
| 137 | + |
| 138 | +1. **Proposal:** The change is proposed by opening a **GitHub Issue** with a clear description. |
| 139 | +2. **Discussion:** The community discusses the proposal. This is the time to raise concerns, suggest alternatives, and build consensus. |
| 140 | +3. **Resolution:** |
| 141 | + * **Consensus:** If the repository’s Maintainers agree, a Maintainer can mark the proposal as "accepted," and work can begin. |
| 142 | + * **No Consensus:** If a clear consensus cannot be reached the matter will be escalated to the TSC. |
| 143 | + |
| 144 | +It is expected that a more formal RFC process is instituted for major changes as the project grows. This will be instituted by the Project Lead or Technical Steering Committee and this document updated via the processes in the current version. |
| 145 | + |
| 146 | +## **3\. How to Become a Maintainer** |
| 147 | + |
| 148 | +We actively want our best contributors to become Maintainers. The path is simple: **contribute consistently and help others.** |
| 149 | + |
| 150 | +A new maintainer can be nominated by a current maintainer. Maintainers are voted in by a simple majority among current maintainers. Eligibility to become a maintainer is based on active contribution and volume of at least 30 merged pull requests in the last year. A different set of maintainers may be maintained for each repository (e.g website, tangle, tangleUI). A subset of maintainers will have organization wide permissions and responsibility. Maintainers can lose their status if they haven’t contributed (code, discussion participation, other duties) in more than one year. |
| 151 | + |
| 152 | +## **4\. Amending This Document** |
| 153 | + |
| 154 | +This governance document is not set in stone. Proposed changes shall be made public for 30 days and decisions will be made by the TSC. |
| 155 | + |
| 156 | +## **5\. Project Infrastructure** |
| 157 | + |
| 158 | +Project infrastructure such as GitHub, CI, Hugging Face, PyPi, etc. are administered by the TSC with access permissions assigned to Maintainers, Release Managers, and Security Team members in accordance with this document. |
| 159 | + |
| 160 | +## **6\. Ownership** |
| 161 | + |
| 162 | +Shopify is the owner of the Tangle name, Trademark, Logo and Domain. In the event of Shopify losing interest in developing and maintaining the project, Shopify plans to donate these assets to a suitable steward. It is intended that that suitable steward might be an appropriate vendor-neutral non-profit open source foundation (for example, CNCF). |
| 163 | + |
| 164 | +## **Contact** |
| 165 | + |
| 166 | +* General questions: (TBD: Google Groups? Slack?) |
| 167 | +* Security reports: [https://github.com/TangleML/tangle/security](https://github.com/TangleML/tangle/security) |
| 168 | + |
0 commit comments