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
This commit is contained in:
black-sliver 2023-06-22 08:51:02 +02:00 committed by GitHub
parent a939f50480
commit f36468fc25
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 63 additions and 0 deletions

View File

@ -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.

View File

@ -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).

60
docs/world maintainer.md Normal file
View File

@ -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/`.