Fandom uses GitHub as a version control and code management tool. Our software is open-source (licensed under GPL), which means you are free and welcome to use it, modify it and share it.

Moreover, just as you can contribute content to any Fandom wiki, you can also contribute code to our software, making the site better for everybody.

This page details how best to contribute code and what kind of code is welcome.

Acceptance time

All code changes need to be reviewed and tested by a Fandom Engineer before they can be included in our code and appear on Fandom, to prevent causing problems on the site. This takes time, especially with bigger changes.

Please understand that due to limited resources and time, as well as a lot of regular work, your pull request may have to wait in the queue for up to 2-3 weeks, or possibly longer depending on the number of pending requests.

Due to these time constraints, pull requests will be rejected unless they meet all of the criteria outlined below. This keeps the request queue clean and prevents "broken" pull requests from slowing down acceptance of good code.

Note: Priority will be given to requests made by members of Fandom's Volunteer Developers program.

Coding conventions

Fandom follows MediaWiki's coding conventions and some additional conventions specified in the guidelines repository. Pull requests not following these conventions will not be accepted.

Rationale: using multiple conventions would make the code harder to read and debug, and make everybody's work harder in the future (including your future work, trust us on this one).

Test first

Your code needs to run as submitted.

This means you have to test it first. Ask a volunteer developer for help if you have problems setting up a particular feature for testing.

Rationale: If Engineers would take time to review code that doesn't work, there would be less time left to make Fandom better and faster.

DO: submit fixes for known bugs

You are more than welcome to submit code that fixes a known issue. To avoid duplicating work, we'll put up a list of bugs that are up for grabs from time to time.

Your pull request must include the ID of the bug from the above list.

If you come across an annoying bug that you think you could fix, let us know, and we'll get that on the list.

DON'T submit fixes for unreported bugs

If your bug has not been reported before you submit your pull request, your code will not be accepted.

Rationale: This is to ensure we all know the current state of Fandom and what is being worked on. Otherwise we risk slipping into chaos. Chaos is bad.

DON'T: submit feature changes

Unfortunately, we cannot accept proposed changes to existing features that are not a fix for an obvious bug.

However, we do appreciate your ideas and are eager to hear what changes you would like to see. Contact us to share your thoughts on any part of Fandom.

Rationale: While considering whether a bug fix is good or not requires a thorough code review and testing, and nothing more, additional consideration needs to be given to any change to an existing feature.

Problems with multiple submissions

Just like a block is applied on a wiki if a user repeatedly violate wiki policies, we reserve the right to ignore all pull requests from an account that repeatedly violates the rules set out above.

Rationale: Again, there's lots to do and precious little time to get it done.

Questions and comments

If you have any questions or comments regarding this policy, please let us know.

Community content is available under CC-BY-SA unless otherwise noted.