This page is currently a draft.
An extension merger is a non-automated process by which the functions of two extensions is united into one extension. Reasons to merge an extension include unnecessary duplication of purpose or significant overlap with the uses of another extension. Merging results in a redirect of the extension's page and possibly subversion commits to the final extension. A comment in the edit summary must be made in the pages of the extensions being merged as to where they are being merged to, and it must be noted in the final extension's page edit summary where the pages of the original extensions were; this is done to preserve attribution under the Creative Commons Share-alike 3.0 license.
There are two primary reasons to merge extensions:
- Duplicate – There are two or more pages on exactly the same purpose.
- Overlap – There are two or more extensions with significant overlap in their uses. Such as two extensions doing similar tasks on the same external web site.
- Less confusion for MediaWiki wiki administrators and developers
- More efficient use of volunteer and staff resources
- Streamline extension usage by wikis
- Making for easier management of MediaWiki wikis
- Address complaints of needing several extensions to accomplish "basic" features missing from others
Merging should be avoided if
- The resulting extension is too broad in scope and purpose to efficiently maintain
Proposing a merger
Users may request that extensions be merged. In most circumstances, a discussion should be started to attract sufficient input. This will usually occur on the proposed destination extension's discussion page. This should include proposal itself (the intent), the list of the affected extensions, and a merger rationale.
Perform the following steps:
||Make the proposal on the proposed final extension's discussion page – For example, if Extension:Foo is proposed to be merged into Extension:Bar, make a proposal to merge Foo into Bar in a new section at Extension talk:Bar. Start a new section at the bottom of that talk page and include the proposal itself (the intent), the list of the affected extensions, and a merger rationale. A good example is the following section:
Notify involved developers – effort must be made to notify developers of the extensions involved in the merge, in the case that they may not be watchlisting one or both pages. Simply go to those users' talk pages and start a new section, leaving a neutral message to participate in the merger discussion. Make sure to provide a link to the discussion page. You may also use the following standard template on the users' talk pages:
||Tag the relevant pages – Add the merge template to the very top of each of the page of each extension involved. All tag Discuss links should be specified to point at the new discussion section. On the extension(s) to be merged, add the following template:
Then, add the appropriate merger template to the very top of the destination page:
If the "discuss" parameter was accidentally omitted, the "Discuss" link on the template will lead to the top of the destination article's discussion page.
For multiple extensions involved (i.e. more than two), add their pages to the tag:
||Discuss the merger – Discuss the merger proposal on the destination extension's discussion section; make sure to follow proper decorum and standard talk page guidelines, which includes staying focused on the content, not on the involved users, not biting newcomers, and being clear and concise.
Many times, a hybrid discussion/straw poll is used, though remember that polling is not a substitute for discussion. Normally !votes are used to indicate a preference to support or oppose an action with an additional comment. A "!vote" means "not a vote"; this terminology comes from the C programming language where ! is the "not" operator. The !votes are normally formatted in the following manner:
*'''Support''' - <insert reason for supporting merger here> ~~~~ *'''Oppose''' - <insert reason for opposing merger here> ~~~~
||Close the merger discussion and determine consensus – After a period of time when discussion has ceased, a rough consensus may or may not emerge, move forward with the merger. In discussions where enough time has passed (normally 1 week or more), and there has been no discussion or where there is unanimous consent to merge, any user may close the discussion to request the extension be merged or, if a developer (volunteers welcome!), undertake the merging the extensions.
In more unclear, controversial cases, this determination that a consensus to merge has been achieved is normally done by the original developers, if involved in the discussion. If either is opposed, a merger should not be forced. If an extension's developer is inactive, another developer may speak for that extension only if they are willing to take on any immediate maintenance the extension may require to function with the current stable release of MediaWiki.
Extensions to merge
- Current extensions tagged for merging can be found at Category:Extensions to be merged