diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000000..852d92f6d0 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,6 @@ +# This is a comment. +# Each line is a file pattern followed by one or more owners. + +# Set TSC Voting Members as PR Reviewers for Changes to GOVERNANCE.md and OWNERS documents +GOVERNANCE.md @StackStorm/Maintainers @StackStorm/Leaders +OWNERS.md @StackStorm/Maintainers @StackStorm/Leaders diff --git a/GOVERNANCE.md b/GOVERNANCE.md new file mode 100644 index 0000000000..7af9243972 --- /dev/null +++ b/GOVERNANCE.md @@ -0,0 +1,111 @@ +StackStorm has joined Linux Foundation in 2019. +With the new Neutral Home we invite everyone: organizations, teams and individuals relying on StackStorm Automation in their operations to support the project by giving back and participating in development as well as influence on its future under the Open Governance. + +# StackStorm Governance +This document defines governance policies for the StackStorm project. +It extends [Technical Charter](https://stackstorm.com/wp/wp-content/uploads/2019/10/StackStorm-Technical-Charter-20191004.pdf) for StackStorm within the Linux Foundation. + +## Technical Steering Committee (TSC) +The Technical Steering Committee is a group of Maintainers (Committers) who have earned the ability to modify (“commit”) sourcecode, documentation or other artifacts. +This group is responsible for all technical oversight of StackStorm as Open Source Project. + +### Maintainer Roles +The current list of maintainers is published and updated in [OWNERS.md](OWNERS.md). +StackStorm uses a three-tiered system of Maintainer roles: +* [Leaders](OWNERS.md#leaders-) + * Head of Technical Steering Committee (TSC). + * Responsible for Project Strategy, External Relations, Organizational aspects, coordinating Events, Partnerships. + * Receive **three votes** in the [conflict resolution and voting process](#conflict-resolution-and-voting) described below. +* [Senior Maintainers](OWNERS.md#senior-maintainers-) + * Have the most in-depth experience with the StackStorm project and are expected to have the knowledge and insight to lead the project's future, growth, standards and improvement. + * Oversee the process for adding new maintainers and provide guidance, help and sharing their experience with the standard maintainers. + * Have full owner access to all the resources and platforms that sustain StackStorm project. + * Receive **two votes** in the voting process. +* [Maintainers](OWNERS.md#maintainers-) + * Have good experience with the StackStorm codebase, expected to provide significant value to the project, helping it grow, improve and succeed. + * Have full member write access to [StackStorm](/~https://github.com/stackstorm/) and [StackStorm-Exchange](/~https://github.com/stackstorm-exchange) Github organizations, CI/CD, Moderator at [forum](https://forum.stackstorm.com/), [Slack](https://stackstorm.com/community-signup) and other Community platforms. + * Receive **one vote** in the voting process. + +### Maintainer responsibilities +* In general dedicate at least 1+ full day per week (summarized) on StackStorm development. +* Monitor Slack, Forums and other Communication channels with StackStorm Community (delayed response is perfectly acceptable). +* Attend the Community meetings to discuss the project plans, roadmap and commitments. +* Triage GitHub issues and perform pull request reviews for [StackStorm](/~https://github.com/stackstorm/) and [StackStorm-Exchange](/~https://github.com/stackstorm-exchange/) Github organizations. + The areas of specialization listed in [OWNERS.md](OWNERS.md) can be used to help with routing + an issue/question to the right person. +* During GitHub issue triage, apply all applicable [labels](/~https://github.com/StackStorm/st2/labels) + to each new issue. Labels are extremely useful for future issue follow up. A few of the most important labels that are + not self explanatory are: + * **good first issue**: Mark any issue that can reasonably be accomplished by a new contributor with this label. It's important to lower the barrier of entry and leave first tasks for new contributors. + * **help wanted**: Unless it is immediately obvious that someone is going to work on an issue (and if so assign it), mark it help wanted. + * **status:to be verified**: If the reported bug needs to be confirmed before working on a fix. + * **status:need more info**: If the issue needs more information from someone who reported it. + * see all the Github [**labels**](/~https://github.com/stackstorm/st2/labels). Recommended informative balance for the issue is 3-5 labels. +* Make sure that ongoing PRs are moving forward at the right pace or closing them. It's important to apply the same to old PRs and Issues to retain healthy project state. +* Guide Community about using the right channel: Github for Issues and Bug-reports, while Forums and Slack for questions and discussions. +* Project maintenance: security, updates, CI/CD, builds, infrastructure. +* Prioritize the work following [StackStorm Roadmap](https://docs.stackstorm.com/latest/roadmap.html) to move the project forward. +* All maintainers ideally are expected to shoulder a proportional share of community work: Issues, Reviews, Slack, Forum, Releases, fixing CI/CD Builds, etc. Work upon to make sure the balance is kept within the team. +* Encourage and guide other community members to contribute back to StackStorm. Even a simple bug report or a one-line documentation PR is a win! +* Follow-up by filing undocumented issues found in community channels, show an example. +* Share the experience with other Maintainers and Contributors. + +## Becoming a Maintainer +Any level of contribution is welcomed: starting from feedback, reporting bugs, manually verifying features and fixes, improving documentation, helping other community members ending with the actual code, PRs, writing tests, reviews, fixes, proposing architecture or even marketing efforts. + +### How to start Contributing? +* Start helping StackStorm is easy. A few contributing activities that are highly valued: + * answer user questions and troubleshoot issues in Community: Slack, Forums, Github + * triaging issues with [**status: to be verified**](/~https://github.com/stackstorm/st2/issues?q=is%3Aissue+is%3Aopen+status+label%3A%22status%3Ato+be+verified%22) will help you to get familiar with the project functionality + * working on issues tagged as [**good first issue**](/~https://github.com/StackStorm/st2/contribute) + * [**bugs**](/~https://github.com/stackstorm/st2/issues?q=is%3Aissue+is%3Aopen+status+label%3Abug) are very important to address and will help you to get more familiar with the codebase + * enhancements marked with [**refactoring**](/~https://github.com/stackstorm/st2/issues?q=is%3Aopen+is%3Aissue+label%3Arefactor) tag + * any [documentation](/~https://github.com/stackstorm/st2docs) improvements are always appreciated + * perform code reviews on other's pull requests. Second pair of eyes and a few cycles of manual testing can help to prevent bugs early + * join the *#development* channel in [StackStorm Slack](https://stackstorm.com/#community) for more pointers from the current Maintainers + * help growing community ecosystem by writing technical content about StackStorm like HOWTOs, Show Cases and Demos, Blog posts, Tutorials. We also accept [guest posts](https://stackstorm.com/blog/)! +* After period of time you will be proposed to be added to the Contributors group of [OWNERS.md](OWNERS.md#contributors). + +### How to become a Maintainer? +Besides of activities listed in Contributing section, you need to demonstrate a strong commitment to the long term success of a project. +Just contributing does not make you a maintainer, it is about building trust with the current maintainers of the project and being a person that they can depend on and trust to make decisions in the best interest of StackStorm. + +Periodically, the existing maintainers curate a list of contributors that have shown regular activity on the project over the prior months. From this list, maintainer candidates are selected and proposed. +* Becoming a maintainer generally means that you are going to be spending substantial time (at least 1 full day/week) on StackStorm for the foreseeable future. +* You should have ability to write a good solid code and collaborate with the team and community. +* Enough effort to understanding of the core project's code base (stackstorm/st2) and internals. +* Understanding of how the team works (policies, processes for testing, quality standards, code review, etc). +* Start doing PRs and code reviews under the guidance of maintainers: ask where the help is needed. +* As you gain experience with the code base and our standards, we will expect you to start working on increasingly complicated PRs, under the guidance of the existing maintainers. +* We may ask you to do some PRs from our backlog or roadmap. It's important to understand that as Maintainers we try to follow the common goals and plans. +* After a period of 3+ months of working together and making sure we see eye to eye, the existing maintainers will discuss granting "standard" maintainer access or not. +We make no guarantees on the length of time this will take, but 3+ months is the approximate time. +* Maintainers will be proposed to be added to the StackStorm GitHub organization and Maintainers group of [OWNERS.md](OWNERS.md) via voting. + +### How to become a Senior Maintainer? +* Gain substantial in-depth experience with the codebase, project and processes. +* Manifest a major contribution to the project functionality. +* Demonstrate ability guiding other Maintainers and Contributors. +* Conduct at least one StackStorm release in a Maintainer role (release responsibility is rotated between the maintainers). +* "Standard" maintainer access can be upgraded via voting to "Senior" maintainer access after several months of work, depending on commitment and involvement. + +## Removing a Maintainer +If a maintainer is no longer interested or cannot perform the maintainer duties listed above, they +should volunteer to be moved to non-voting Contributor or Friends status. In extreme cases this can also occur by a vote of +the maintainers per the voting process below. + +## Conflict resolution and voting +In general, it's preferred that technical issues and maintainer membership are agreed +between the persons involved. If a dispute cannot be decided independently, the maintainers can be +called in to decide. If the maintainers themselves cannot decide an issue, the issue will +be resolved by voting. + +## How decisions are made? +The process of adding, promoting or removing Contributors and Maintainers is done via composing a Pull Request (PR) against `OWNERS.md` +which includes details about contribution activities committed to the project during period of time and how that conforms with expected Maintainer responsibilities, skillset and the best interest of the project. +The decision is made based on TSC members votes in a PR. + +The process of voting on other Issues, Proposals and Changes is performed by creating an open Github Discussion. For decisions making history reasons and to stimulate brainstorming, it's recommended to write a detailed research/description that covers possible outcomes and pros/cons behind the change to give comprehensive context. + +Additions and removals of maintainers require a *2/3 majority*, while other decisions and changes +require only a simple majority. The voting period is one week. diff --git a/OWNERS.md b/OWNERS.md new file mode 100644 index 0000000000..a9dbe9e80c --- /dev/null +++ b/OWNERS.md @@ -0,0 +1,76 @@ +StackStorm was founded in 2013. After several acquisitions the project has finally joined [The Linux Foundation](https://www.linuxfoundation.org/projects/directory/) in 2019.
+ +This page lists active project maintainers and their areas of expertise. This can be used for routing PRs, discussions, questions and overall coordination. + +* See [GOVERNANCE.md](GOVERNANCE.md) that describes each major role and its responsibilities in detail. +* See [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) about maintainers standards in front of community. +* See [CONTRIBUTING.rst](CONTRIBUTING.rst) for general contributing guidelines. + +# Leaders *** +###### 3 vote points +[@StackStorm/leaders](/~https://github.com/orgs/StackStorm/teams/leaders) is head of Technical Steering Committee (TSC). +Responsible for Project Strategy, External Relations, Organizational aspects, Partnerships and Future. +* Dmitri Zimine ([@dzimine](/~https://github.com/dzimine/)) <> + - StackStorm co-founder. External Relations, Leadership. +* Lindsay Hill ([@LindsayHill](/~https://github.com/LindsayHill)) <> + - External Relations, Plans, Documentation, Community. + +# Senior Maintainers ** +###### 2 vote points +Senior [@StackStorm/maintainers](/~https://github.com/orgs/StackStorm/teams/maintainers) are part of Technical Steering Committee. +Have deep platform knowledge & experience and demonstrate technical leadership as well as driving the project forward. +* blag ([@blag](/~https://github.com/blag)) <> + - ChatOps, StackStorm Exchange, Community, Documentation, CI/CD. +* Eugen Cusmaunsa ([@armab](/~https://github.com/armab)) <> + - Systems, Deployments, Docker, K8s, HA, Ansible, Chef, Vagrant, deb/rpm, CI/CD, Infrastructure, Release Engineering, Community. +* Matthew Stone ([@bigmstone](/~https://github.com/bigmstone)) <> + - Core, External Relations, Robot Arm [:)](https://twitter.com/Stack_Storm/status/1217056819736203270) +* Tomaz Muraus ([@kami](/~https://github.com/kami)) <> + - Core, Performance, API, Scalability, CI/CD, Systems, Deployments, Packaging, OpenSource. +* Winson Chan ([@m4dcoder](/~https://github.com/m4dcoder)) <> + - Core, Orquesta inventor, Workflows, Scalability, API, CI/CD, Release Engineering. + +# Maintainers * +###### 1 vote points +Being part of Technical Steering Committee (TSC) [@StackStorm/maintainers](/~https://github.com/orgs/StackStorm/teams/maintainers) provide significant and reliable value to the project helping it grow and improve through development and maintenance. +* JP Bourget ([@punkrokk](/~https://github.com/punkrokk)) <> + - Systems, deb/rpm, Deployments, Community, StackStorm Exchange, SecOps, CircleCi +* Mick McGrath ([@mickmcgrath13](/~https://github.com/mickmcgrath13)) <> + - Systems, ST2 Exchange. [Case Study](https://stackstorm.com/case-study-bitovi/). +* Nick Maludy ([@nmaludy](/~https://github.com/nmaludy)) <> + - Community, Core, Systems, StackStorm Exchange, Puppet deployment. [Case Study](https://stackstorm.com/case-study-dmm/). + +-------- + +# Contributors +Contributors are using and occasionally contributing back to the project, might be active in conversations or express their opinion on the project’s direction. +They're not part of the TSC voting process, but appreciated for their contribution, involvement and may become Maintainers in future. + +* Carlos ([@nzlosh](/~https://github.com/nzlosh)) - Chatops, Errbot, Community, Discussions, StackStorm Exchange. +* Hiroyasu Ohyama ([@userlocalhost](/~https://github.com/userlocalhost)) - Orquesta, Workflows, st2 Japan Community. [Case Study](https://stackstorm.com/case-study-dmm/). +* Jon Middleton ([@jjm](/~https://github.com/jjm)) - StackStorm Exchange, Core, Discussions. +* Shu Sugimoto ([@shusugmt](/~https://github.com/shusugmt)) - Docker, StackStorm Exchange packs. +* Tristan Struthers ([@trstruth](/~https://github.com/trstruth)) - Docker, K8s, Orquesta, Community. + +# Friends +People that are currently not very active maintainers/contributors but who participated in and formed the project we have today. +Community Members, [StackStorm Alumni](/~https://github.com/orgs/StackStorm/teams/alumni) and Influencers. +Thank you, Friends! +* Anthony Shaw ([@tonybaloney](/~https://github.com/tonybaloney)) - Contribution via Ideas, Feedback, ChatOps improvements, core Architecture, Community and even [Marketing](https://news.ycombinator.com/item?id=14368748). [Case Study](https://stackstorm.com/case-study-dimension-data/). +* Andy Moore ([@AndyMoore](/~https://github.com/AndyMoore)) - Community, StackStorm Exchange packs, Kubernetes. +* Anirudh Rekhi ([@humblearner](/~https://github.com/humblearner)) - ex Stormer. Systems, CI/CD, DevOps, Infrastructure. +* Denis Barishev ([@dennybaa](/~https://github.com/dennybaa)) - ex Stormer. Re-architeced StackStorm installer via deb/rpm packages, made it stable, repeatable, fixed first platform pain points. +* Ed Medvedev ([@emedvedev](/~https://github.com/emedvedev)) - ex Stormer. Made WebUI slick and ChatOps awesome, discovered and implemented today's [StackStorm Exchange](https://exchange.stackstorm.org/). +* Evan Powell ([@epowell101](/~https://github.com/epowell101)) - StackStorm co-founder, first CEO, Stormer forever. +* Kirill Enykeev ([@enykeev](/~https://github.com/enykeev)) - ex Stormer. WebUI, Workflow Designer, StackStorm Exchange, CI. +* Michael Ward ([@mward29](/~https://github.com/mward29)) - StackStorm Exchange, Community, Docker & K8s. [Case Study](https://stackstorm.com/case-study-pearson/). +* Matt Oswalt ([@Mierdin](/~https://github.com/Mierdin)) - ex Stormer. Invented, architected and implemented [st2 Inquiries](https://docs.stackstorm.com/inquiries.html). +* Patrick Hoolboom ([@DoriftoShoes](/~https://github.com/DoriftoShoes)) - early Stormer. DevOps thought Leadership, ST2 Architecture, first Infrastructure, StackStorm Workflows to release StackStorm, e2e tests. +* James Fryman ([@jfryman](/~https://github.com/jfryman)) - early Stormer. [StackStorm ChatOps](https://www.youtube.com/watch?v=IhzxnY7FIvg) father and Thought Leader. +* Jinping Han ([@jinpingh](/~https://github.com/jinpingh)) - ex Stormer. Community, Core, Tests, Pack Dependencies. +* Johan Dahlberg ([@johandahlberg](/~https://github.com/johandahlberg)) - Using st2 for Bioinformatics/Science project, providing feedback & contributions in Ansible, Community, Workflows. [Case Study](https://stackstorm.com/case-study-scilifelab/). +* Johan Hermansson ([@johanherman](/~https://github.com/johanherman)) - Using st2 for Bioinformatics/Science project, feedback & contributions in Ansible, Community, Workflows. [Case Study](https://stackstorm.com/case-study-scilifelab/). +* Lakshmi Kannan ([@lakshmi-kannan](/~https://github.com/lakshmi-kannan)) - early Stormer. Initial Core platform architecture, scalability, reliability, Team Leadership during the project hard times. +* Manas Kelshikar ([@manasdk](/~https://github.com/manasdk)) - ex Stormer. Developed (well) early core platform features. +* Vineesh Jain ([@VineeshJain](/~https://github.com/VineeshJain)) - ex Stormer. Community, Tests, Core, QA. +* Warren Van Winckel ([@warrenvw](/~https://github.com/warrenvw)) - ex Stormer. Docker, Kubernetes, Vagrant, Infrastructure.