Page MenuHomePhabricator

Add support for Git in ExtensionDistributor
Closed, ResolvedPublic

Description

Author: jdk370

Description:
no way to get extensions from snapshot (since now in git)


Version: unspecified
Severity: normal

Details

Reference
bz35574

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 22 2014, 12:11 AM
bzimport set Reference to bz35574.
bzimport added a subscriber: Unknown Object (MLST).

Only 121 extensions out of 680 are in git. If we switch ExtensionDistributor over to Git then we'd lose the bulk of the extensions.

jdk370 wrote:

well, maybe not now, but later

(In reply to comment #1)

Only 121 extensions out of 680 are in git. If we switch ExtensionDistributor
over to Git then we'd lose the bulk of the extensions.

We could make a "githead" branch, and allow downloading from either. Not the tidiest (and also potentially confusing to some users), but it would work.

Needs the changes I made backporting, but that part is relatively trivial

Also note that, contrary to how we managed extensions on the Subversion server, on the Git server every extension has its own repository. Which means they are no longer automatically branched with core.

In a way this is a good thing because it means there won't be any ghost branches that the extensions maintainer never choose for. On the other hand it means that:

  • There is no longer a generic known set of branch names that both core and extensions will all have
  • Extension maintainers have to branch themselves.

So ExtensionDistributor would have to fetch a list of branches and tags from the repo itself after the extension repo is selected on the first page (rather then knowing ahead of time which branches there will be).

Also, I'm not sure we have to choose between git or svn, as far as I'm concerned we can just support both. If need be the code may have to be slightly adjusted but I don't think it's anything major.

It would periodically pull all repo's from Git that start with "mediawiki/extensions/" (just like it currently already svn up's periodically all of [mediawiki]/trunk/extensions and a select number of branches).

And then in the interface it could either mix the names alphabetically, or if there is ambiguity it could add " (git)" / " (svn)" to the <option> name. And for svn it still uses the selected branches and for Git it fetches available tags/branches.

Git support exists. Might need some work for extension branches in the future, but considering we don't have a format for doing this yet, support can't be added

(In reply to comment #6)

Git support exists. Might need some work for extension branches in the future,
but considering we don't have a format for doing this yet, support can't be
added

bug 38012.