From f36468fc25ee7df9f054490fb98cb7de2b9c0c21 Mon Sep 17 00:00:00 2001 From: black-sliver <59490463+black-sliver@users.noreply.github.com> Date: Thu, 22 Jun 2023 08:51:02 +0200 Subject: [PATCH] Docs: add info about maintaining worlds (#1838) * Docs: add info about mainting worlds * Docs: fix typos in world maintainer * Docs: commit suggestions into world maintainers Thanks Joethepic and Silvris * Docs: fix more typos in world maintainer * Docs: more typos * Docs: world maintainers link to core maintainers * Docs: world maintainers voting on discord * Docs: add 'world maintainer' link to 'adding games' * Docs: unmaintained worlds in 'disabled' * Docs: world maintainer update from review Thanks LegendaryLinux * Doc: rephrase world maintainer voting --- docs/adding games.md | 1 + docs/contributing.md | 2 ++ docs/world maintainer.md | 60 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+) create mode 100644 docs/world maintainer.md diff --git a/docs/adding games.md b/docs/adding games.md index 1c59f256aeb7..24d9e499cd98 100644 --- a/docs/adding games.md +++ b/docs/adding games.md @@ -341,3 +341,4 @@ The various methods and attributes are documented in `/worlds/AutoWorld.py[World [world api.md](https://github.com/ArchipelagoMW/Archipelago/blob/main/docs/world%20api.md), though it is also recommended to look at existing implementations to see how all this works first-hand. Once you get all that, all that remains to do is test the game and publish your work. +Make sure to check out [world maintainer.md](./world%20maintainer.md) before publishing. diff --git a/docs/contributing.md b/docs/contributing.md index 4e90db95cddd..899c06b92279 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -10,3 +10,5 @@ Otherwise, we tend to judge code on a case to case basis. For adding a new game to Archipelago and other documentation on how Archipelago functions, please see [the docs folder](/docs/) for the relevant information and feel free to ask any questions in the #archipelago-dev channel in our [Discord](https://archipelago.gg/discord). +If you want to merge a new game, please make sure to read the responsibilities as +[world maintainer](/docs/world%20maintainer.md). diff --git a/docs/world maintainer.md b/docs/world maintainer.md new file mode 100644 index 000000000000..9cd7a378a26f --- /dev/null +++ b/docs/world maintainer.md @@ -0,0 +1,60 @@ +# World Maintainer + +A world maintainer is a person responsible for a world or part of a world in Archipelago. + +If a world author does not want to take on the responsibilities of a world maintainer, they can release their world as +an unofficial [APWorld](/docs/apworld%20specification.md) or maintain their own fork instead. + + +## Responsibilities + +Unless these are shared between multiple people, we expect the following from each world maintainer + +* Be on our Discord to get updates on problems with and suggestions for the world. +* Decide if a feature (pull request) should be merged. +* Review contents of such pull requests or organize peer reviews or post that you did not review the content. +* Fix or point out issues when core changes break your code. +* Use the watch function on GitHub, the #github-updates channel on Discord or check manually from time to time for new + pull requests. Core maintainers may also ping you if a pull request concerns your world. +* Test (or have tested) the world on the main branch from time to time, especially during RC (release candidate) phases + of development. +* Let us know of long unavailabilities. + + +## Becoming a World Maintainer + +### Adding a World + +When we merge your world into the core Archipelago repository, you automatically become world maintainer unless you +nominate someone else (i.e. there are multiple devs). + +### Getting Voted + +When a world is unmaintained, the [core maintainers](https://github.com/orgs/ArchipelagoMW/people) +can vote for a new maintainer if there is a candidate. +For a vote to pass, the majority of participating core maintainers must vote in the affirmative. +The time limit is 1 week, but can end early if the majority is reached earlier. +Voting shall be conducted on Discord in #archipelago-dev. + + +## Dropping out + +### Resigning + +A world maintainer can resign. If no new maintainer steps up and gets voted, the world becomes unmaintained. + +### Getting Voted out + +A world maintainer can be voted out by the [core maintainers](https://github.com/orgs/ArchipelagoMW/people), +for example when they become unreachable. +For a vote to pass, the majority of participating core maintainers must vote in the affirmative. +The time limit is 2 weeks, but can end early if the majority is reached earlier AND the world maintainer was pinged and +made their case or was pinged and has been unreachable for more than 2 weeks already. +Voting shall be conducted on Discord in #archipelago-dev. Commits that are a direct result of the voting shall include +date, voting members and final result in the commit message. + + +## Handling of Unmaintained Worlds + +As long as worlds are known to work for the most part, they can stay included. Once a world becomes broken it shall be +moved from `worlds/` to `worlds_disabled/`.