From 14d294c47aa3fb5a575e35cd2ce8a9c31647a7f0 Mon Sep 17 00:00:00 2001 From: Philpax Date: Tue, 3 May 2022 11:17:25 +0200 Subject: [PATCH 1/7] Add formal subteams DIP --- text/0000-formal-subteams.md | 91 ++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 text/0000-formal-subteams.md diff --git a/text/0000-formal-subteams.md b/text/0000-formal-subteams.md new file mode 100644 index 0000000..e69a0b1 --- /dev/null +++ b/text/0000-formal-subteams.md @@ -0,0 +1,91 @@ +- Feature Name: Formal Subteams +- Start Date: 2022-05-03 +- DIP PR: [goatcorp/DIPs#18](https://github.com/goatcorp/DIPs/pull/18) +- Repo-Relevant Issue: [goatcorp/dalamud#0000](https://github.com/goatcorp/dalamud/issues/0000) + +# Summary + +[summary]: #summary + +Introducing formal subteams for each area of the goatcorp ecosystem to make it easier to find the responsible parties. + +# Motivation + +[motivation]: #motivation + +It is currently difficult to know who to ask for help, support or guidance. goat is the primary point of contact for all operations, which causes problems when he is otherwise indisposed. Introducing subteams will help delegate responsibility, and make it easier to keep track of ongoing initiatives. + +# Guide-level explanation + +[guide-level-explanation]: #guide-level-explanation + +Six subteams will be created for each area of the ecosystem: + +- **Launcher**: development and maintenance of XIVLauncher +- **Dalamud**: development and maintenance of Dalamud +- **Linux**: ensures that XIVLauncher and Dalamud work well and/or conveniently on Linux, including the Steam Deck +- **Documentation**: creation, maintenance and improvement of goatcorp-related documentation, including the FAQs, support guides, and developer documentation. + - RFC: DIPs too? + - RFC: SamplePlugin et al? +- **Community**: community relations and support, as well as bringing community feedback to the other teams +- **Plugin Approval**: reviewing and approving plugins, and taking the necessary steps to ensure that they are safe + +Members can belong to multiple subteams, but they are encouraged to specialise and delegate where possible to ensure continuity of operations. + +# Reference-level explanation + +[reference-level-explanation]: #reference-level-explanation + +The initial members of each subteam will be as follows: + +- **Launcher**: goat, kizer, ??? +- **Dalamud**: goat, daemitus, ??? +- **Linux**: ??? +- **Documentation**: Franz, Philpax, kal, ??? +- **Community**: Franz, kal, ??? +- **Plugin Approval**: goat, Franz, Caraxi, ??? + +A GitHub subteam under goatcorp will be created for each subteam, and each member will be added to it. Each subteam will be granted contributor privileges (RFC: too much?) to the repositories. + +Adding or removing members to a subteam is done by informal consensus. This may be specified further at a later date, but we don't know how well it'll work until we try it. + +The GitHub subteam list will remain as the authoritative source for team membership at this time, but it may be replicated to the FAQ or the Discord (e.g. for roles). + +# Drawbacks + +[drawbacks]: #drawbacks + +This will induce some degree of organisational burden amongst goatcorp (specifically goat) while everything is being set up. + +Aspects of the goatcorp ecosystem will be entrusted to people who aren't goat, which could potentially mean the wrong call is made with goatcorp permissions. Hopefully we pick the right people! + +# Rationale and alternatives + +[rationale-and-alternatives]: #rationale-and-alternatives + +These are relatively straightforward teams that formalise community dynamics that we already have. It is relatively conservative in this regard, and should only seek to give names to what we already have. + +This RFC does not propose anything further as goatcorp will need to explore this before it attempts anything more. + +If we do not do this, the majority of the governance will remain with goat, which is inherently unscalable, especially as the number of plugins, and devs, grows well into the dozens. Other people are already technically empowered to act on goat's behalf, but generally avoid doing so as they have not been given explicit permission. + +# Prior art + +[prior-art]: #prior-art + +This is patterned on the [Rust governance model](https://forge.rust-lang.org/governance/index.html), which seems to work pretty well for them. I believe this is not too dissimilar from other FOSS projects. + +# Unresolved questions + +[unresolved-questions]: #unresolved-questions + +- Are these the only subteams we want? +- Do we want formal leaders for each subteam? +- What comes under the purview of Documentation? +- What level of permission do we want to entrust to a subteam member? + +# Future possibilities + +[future-possibilities]: #future-possibilities + +We could potentially develop policies around how to join a subteam, so that people interested in participating know how to start. \ No newline at end of file From 4a930ef01af795147196d0bf7cb99fb55fb6e834 Mon Sep 17 00:00:00 2001 From: Philpax Date: Fri, 6 May 2022 04:24:36 +0200 Subject: [PATCH 2/7] Address initial round of feedback --- text/0000-formal-subteams.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/text/0000-formal-subteams.md b/text/0000-formal-subteams.md index e69a0b1..9ca533f 100644 --- a/text/0000-formal-subteams.md +++ b/text/0000-formal-subteams.md @@ -21,13 +21,11 @@ It is currently difficult to know who to ask for help, support or guidance. goat Six subteams will be created for each area of the ecosystem: -- **Launcher**: development and maintenance of XIVLauncher -- **Dalamud**: development and maintenance of Dalamud +- **Launcher**: development, maintenance and code documentation of XIVLauncher +- **Dalamud**: development, maintenance and code documentation of Dalamud - **Linux**: ensures that XIVLauncher and Dalamud work well and/or conveniently on Linux, including the Steam Deck -- **Documentation**: creation, maintenance and improvement of goatcorp-related documentation, including the FAQs, support guides, and developer documentation. - - RFC: DIPs too? - - RFC: SamplePlugin et al? -- **Community**: community relations and support, as well as bringing community feedback to the other teams +- **Documentation**: creation, maintenance and improvement of goatcorp-related documentation, including the FAQs, support guides, DIPs and developer documentation (for now, including SamplePlugin). Overlap with "Developer Relations" role. +- **Community**: community relations and support, triaging and pruning issues, as well as bringing community feedback to the other teams - **Plugin Approval**: reviewing and approving plugins, and taking the necessary steps to ensure that they are safe Members can belong to multiple subteams, but they are encouraged to specialise and delegate where possible to ensure continuity of operations. @@ -65,7 +63,7 @@ Aspects of the goatcorp ecosystem will be entrusted to people who aren't goat, w These are relatively straightforward teams that formalise community dynamics that we already have. It is relatively conservative in this regard, and should only seek to give names to what we already have. -This RFC does not propose anything further as goatcorp will need to explore this before it attempts anything more. +This DIP does not propose anything further as goatcorp will need to explore this before it attempts anything more. If we do not do this, the majority of the governance will remain with goat, which is inherently unscalable, especially as the number of plugins, and devs, grows well into the dozens. Other people are already technically empowered to act on goat's behalf, but generally avoid doing so as they have not been given explicit permission. @@ -79,13 +77,16 @@ This is patterned on the [Rust governance model](https://forge.rust-lang.org/gov [unresolved-questions]: #unresolved-questions -- Are these the only subteams we want? +- Are these the only subteams we want?: + - Initial consensus: yes, for now. - Do we want formal leaders for each subteam? + - Initial consensus: no, that's too much administrative overhead. We'll try without leaders for now and see how we go. - What comes under the purview of Documentation? + - Initial consensus: some developer relations-related responsibilities as well, but code documentation remains with the people writing the code - What level of permission do we want to entrust to a subteam member? # Future possibilities [future-possibilities]: #future-possibilities -We could potentially develop policies around how to join a subteam, so that people interested in participating know how to start. \ No newline at end of file +We could potentially develop policies around how to join a subteam, so that people interested in participating know how to start. From 509bcf7014a450127ea849d7995754ae43bbe55a Mon Sep 17 00:00:00 2001 From: Philpax Date: Sun, 22 May 2022 12:36:06 +0200 Subject: [PATCH 3/7] Address DIP feedback and add suggested members --- text/0000-formal-subteams.md | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/text/0000-formal-subteams.md b/text/0000-formal-subteams.md index 9ca533f..7b20bab 100644 --- a/text/0000-formal-subteams.md +++ b/text/0000-formal-subteams.md @@ -19,14 +19,16 @@ It is currently difficult to know who to ask for help, support or guidance. goat [guide-level-explanation]: #guide-level-explanation -Six subteams will be created for each area of the ecosystem: +Eight subteams will be created for each area of the ecosystem: - **Launcher**: development, maintenance and code documentation of XIVLauncher - **Dalamud**: development, maintenance and code documentation of Dalamud -- **Linux**: ensures that XIVLauncher and Dalamud work well and/or conveniently on Linux, including the Steam Deck -- **Documentation**: creation, maintenance and improvement of goatcorp-related documentation, including the FAQs, support guides, DIPs and developer documentation (for now, including SamplePlugin). Overlap with "Developer Relations" role. -- **Community**: community relations and support, triaging and pruning issues, as well as bringing community feedback to the other teams +- **Unix**: ensures that XIVLauncher and Dalamud work well and/or conveniently on Linux and macOS, including the Steam Deck +- **Documentation**: creation, maintenance and improvement of goatcorp-related documentation, including the FAQs, support guides, DIPs and developer documentation (for now, including SamplePlugin). Does not handle documentation within goatcorp code, but may document code intended for other people (e.g. plugin developers.) +- **Moderation**: interacting with users and ensuring that they respect the sanctity of the Goat Place +- **Community**: community relations and support, triaging and pruning issues, as well as bringing community feedback to the other teams. explicitly *not* moderation. - **Plugin Approval**: reviewing and approving plugins, and taking the necessary steps to ensure that they are safe +- **Reverse Engineering**: people who are particularly good at reversing the game and can be consulted for assistance or guidance Members can belong to multiple subteams, but they are encouraged to specialise and delegate where possible to ensure continuity of operations. @@ -36,14 +38,16 @@ Members can belong to multiple subteams, but they are encouraged to specialise a The initial members of each subteam will be as follows: -- **Launcher**: goat, kizer, ??? -- **Dalamud**: goat, daemitus, ??? -- **Linux**: ??? -- **Documentation**: Franz, Philpax, kal, ??? -- **Community**: Franz, kal, ??? -- **Plugin Approval**: goat, Franz, Caraxi, ??? +- **Launcher**: goat, kizer +- **Dalamud**: goat, daemitus, Aireil, Caraxi +- **Unix**: ashkitten, Caliel666, Centzilius, Marzent, Dormanil, Helios747, Zips +- **Documentation**: Franz, Philpax, kal +- **Moderation**: Aida Enna, Arc/Dis, Caraxi, Dale, AmenneHolelane +- **Community**: Franz, kal, NotNite, goat +- **Plugin Approval**: goat, Franz, Caraxi, karashiiro +- **Reverse Engineering**: aers, Adam, Pohky, Caraxi -A GitHub subteam under goatcorp will be created for each subteam, and each member will be added to it. Each subteam will be granted contributor privileges (RFC: too much?) to the repositories. +A GitHub subteam under goatcorp will be created for each subteam, and each member will be added to it. Each subteam will be granted contributor privileges to relevant repositories. Adding or removing members to a subteam is done by informal consensus. This may be specified further at a later date, but we don't know how well it'll work until we try it. @@ -57,6 +61,8 @@ This will induce some degree of organisational burden amongst goatcorp (specific Aspects of the goatcorp ecosystem will be entrusted to people who aren't goat, which could potentially mean the wrong call is made with goatcorp permissions. Hopefully we pick the right people! +There also exists the risk of the community becoming insular, with new people feeling disinclined to join. We have generally done a good job of managing this so far, but it's something we need to keep in mind. We need to make sure that these teams bring people together, not keep them out. + # Rationale and alternatives [rationale-and-alternatives]: #rationale-and-alternatives From 9862d76115542b578e6432b2a86c9656d4e33e98 Mon Sep 17 00:00:00 2001 From: Philpax Date: Mon, 23 May 2022 07:12:37 +0200 Subject: [PATCH 4/7] DIP18: Add Marzent to launcher team --- text/0000-formal-subteams.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text/0000-formal-subteams.md b/text/0000-formal-subteams.md index 7b20bab..6a207d3 100644 --- a/text/0000-formal-subteams.md +++ b/text/0000-formal-subteams.md @@ -38,7 +38,7 @@ Members can belong to multiple subteams, but they are encouraged to specialise a The initial members of each subteam will be as follows: -- **Launcher**: goat, kizer +- **Launcher**: goat, kizer, Marzent - **Dalamud**: goat, daemitus, Aireil, Caraxi - **Unix**: ashkitten, Caliel666, Centzilius, Marzent, Dormanil, Helios747, Zips - **Documentation**: Franz, Philpax, kal From 8bf030fc910e2fad9c4c43088709b2bde73a55cc Mon Sep 17 00:00:00 2001 From: Philpax Date: Wed, 25 May 2022 08:45:41 +0200 Subject: [PATCH 5/7] DIP18: rename file --- text/{0000-formal-subteams.md => 18-formal-subteams.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename text/{0000-formal-subteams.md => 18-formal-subteams.md} (100%) diff --git a/text/0000-formal-subteams.md b/text/18-formal-subteams.md similarity index 100% rename from text/0000-formal-subteams.md rename to text/18-formal-subteams.md From ec4d9401e2efa572630efc706985a93020930271 Mon Sep 17 00:00:00 2001 From: Philpax Date: Wed, 25 May 2022 08:48:25 +0200 Subject: [PATCH 6/7] DIP18: add mention of Arc's Discord bot suggestion --- text/18-formal-subteams.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/text/18-formal-subteams.md b/text/18-formal-subteams.md index 6a207d3..fa09866 100644 --- a/text/18-formal-subteams.md +++ b/text/18-formal-subteams.md @@ -95,4 +95,5 @@ This is patterned on the [Rust governance model](https://forge.rust-lang.org/gov [future-possibilities]: #future-possibilities -We could potentially develop policies around how to join a subteam, so that people interested in participating know how to start. +- We could potentially develop policies around how to join a subteam, so that people interested in participating know how to start. + - A Discord bot could be used for this to vet people's applications, [as suggested by ArcaneDisgea](https://github.com/goatcorp/DIPs/pull/18#discussion_r880978776). \ No newline at end of file From 2ef3ff45d082e5cffb611221ef1e100531c0fe75 Mon Sep 17 00:00:00 2001 From: Philpax Date: Sun, 29 May 2022 20:15:18 +0200 Subject: [PATCH 7/7] DIP18: final changes --- text/18-formal-subteams.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/text/18-formal-subteams.md b/text/18-formal-subteams.md index fa09866..0a93b70 100644 --- a/text/18-formal-subteams.md +++ b/text/18-formal-subteams.md @@ -1,7 +1,6 @@ - Feature Name: Formal Subteams - Start Date: 2022-05-03 - DIP PR: [goatcorp/DIPs#18](https://github.com/goatcorp/DIPs/pull/18) -- Repo-Relevant Issue: [goatcorp/dalamud#0000](https://github.com/goatcorp/dalamud/issues/0000) # Summary @@ -26,7 +25,7 @@ Eight subteams will be created for each area of the ecosystem: - **Unix**: ensures that XIVLauncher and Dalamud work well and/or conveniently on Linux and macOS, including the Steam Deck - **Documentation**: creation, maintenance and improvement of goatcorp-related documentation, including the FAQs, support guides, DIPs and developer documentation (for now, including SamplePlugin). Does not handle documentation within goatcorp code, but may document code intended for other people (e.g. plugin developers.) - **Moderation**: interacting with users and ensuring that they respect the sanctity of the Goat Place -- **Community**: community relations and support, triaging and pruning issues, as well as bringing community feedback to the other teams. explicitly *not* moderation. +- **Community**: community relations and support, triaging and pruning issues, as well as bringing community feedback to the other teams. explicitly _not_ moderation. - **Plugin Approval**: reviewing and approving plugins, and taking the necessary steps to ensure that they are safe - **Reverse Engineering**: people who are particularly good at reversing the game and can be consulted for assistance or guidance @@ -96,4 +95,4 @@ This is patterned on the [Rust governance model](https://forge.rust-lang.org/gov [future-possibilities]: #future-possibilities - We could potentially develop policies around how to join a subteam, so that people interested in participating know how to start. - - A Discord bot could be used for this to vet people's applications, [as suggested by ArcaneDisgea](https://github.com/goatcorp/DIPs/pull/18#discussion_r880978776). \ No newline at end of file + - A Discord bot could be used for this to vet people's applications, [as suggested by ArcaneDisgea](https://github.com/goatcorp/DIPs/pull/18#discussion_r880978776).