Page MenuHomePhabricator

BlueSpice/HalloWelt force merging to branches and messing up mediawiki/extensions.git
Open, Unbreak Now!Public

Description

fatal: remote error: want f2b28d6188e902d4f16d614ab2dd355df50703e1 not valid
fatal: internal server error
fatal: remote error: want f0acc61ea888bd04b2931195120d7ca9708cd929 not valid
fatal: internal server error
fatal: remote error: want b859a3d9216ad74d2b6fa301d33c24365a5a491a not valid
fatal: internal server error
Errors during submodule fetch:
	BlueSpiceInterWikiLinks
	BlueSpiceFoundation
	BlueSpiceExtendedSearch

This is the... I don't know what... nth time this week that apparent force merging to master on BlueSpice repos causes updating mediawiki/extensions.git to fail.

Please stop it.

Event Timeline

Reedy triaged this task as Unbreak Now! priority.Jul 10 2026, 2:36 PM
brennen moved this task from Backlog to Radar on the User-brennen board.
brennen subscribed.
fatal: remote error: want 08f39590d6bc1d1e7f0b09a3c17ba7b4741b66b5 not valid
fatal: internal server error
Errors during submodule fetch:
	BlueSpiceBookshelf

And again...

Reedy renamed this task from BlueSpice force merging to branches and messing up mediawiki/extensions.git to BlueSpice/HalloWelt force merging to branches and messing up mediawiki/extensions.git.Jul 13 2026, 6:35 PM
fatal: remote error: want 9b711df65c4bd1804cef44492e78698b674119ea not valid
fatal: internal server error
Errors during submodule fetch:
	FlexiSkin
fatal: remote error: want 58785c7111cf3a1bd4cca16779a730aba2e59ef6 not valid
fatal: internal server error
Errors during submodule fetch:
	BlueSpiceRating
fatal: remote error: want b3f1bae1ecb096b1726ce955d25f199f43dc2192 not valid
fatal: internal server error
Errors during submodule fetch:
	BlueSpiceReminder
Hslater claimed this task.

Interesting; thank you.

Sorry, no, you can't just close it like that.

What does "Interesting; thank you." mean?

Are you going to just continue doing it? Are you going to stop force merging or whatever you're actually doing?

It meant I understood the report and appreciated you bringing it to my attention. No. I acknowledged the report because I accepted there was an issue.

Is there a reasonable use case for these repos to have force merge enabled in gerrit? Force pushing to a feature branch can be a normal thing when you are not collaborating with anyone via another clone and using a pull request workflow. That is not generally how we would expect Gerrit to be used. Force pushing to any released branch (including main) is generally a recipe for breaking all other git clones.

I can see that force push is enabled for the various users and groups across the BlueSpice repository tree in gerrit. At the https://gerrit.wikimedia.org/r/admin/repos/mediawiki/extensions/BlueSpice,access level @Kizule is granted force push everywhere. https://gerrit.wikimedia.org/r/admin/repos/mediawiki/extensions/BlueSpiceBookshelf,access grants force push to the "bluespice-admin" group (@Driedmueller, @Hslater, @ItSpiderman, @Mglaser, Mschlindwein (no phab?), @Osnard). https://gerrit.wikimedia.org/r/admin/repos/mediawiki/extensions/BlueSpiceAvatars,access does the same.

At a more global +2 level, the config for https://gerrit.wikimedia.org/r/admin/repos/mediawiki,access does also allow for force pushing, but in limited circumstances. Force push is allowed to deployment branches (refs/heads/wmf/*) by the wmf-deployment group. Force push is also allowed for tags by the quite large "mediawiki" group (MediaWiki +2 rights holders).

I suggest since the issue has been acknowledged we just disable it in Gerrit config and go from there.

Thanks for the constructive feedback.

I've revoked the explicit force-push permission for Kizule.

We can also consider removing force-push permissions from the bluespice-admin group. In practice, though, this was my doing.

Over the past week I've been updating the BlueSpice repositories to bring them into line with current MediaWiki standards. The force-pushes were done within a matter of minutes. I wasn't aware of the effect this would have on mediawiki/extensions.git.

That work is now complete, and the repositories are now passing CI, so I don't expect any further force-pushes of this nature.

Thanks for raising awareness to this topic. And my apologies for the inconvenience.

We mainly develop against REL1_43 and cherry-pick our changes to master. Sometimes we have cases where we just need to adjust something (version numbers in extension.json, composer dependencies) on master. For this we have a direct push policy in the team, that allows perform such simple changes directly. Or as @Hslater explained for some cases of other maintenance. We will review this procedure.

Especially semi-automatic version bumping will require force-pushed into the repos in the future. But this usually only affects REL1_43 and custom branches, not master, so I hope that is okay.

Why does anything need force pushing?

This feels like a tooling issue on your end.

You can force merge (“submit”) via Gerrit, while we don’t actually advise it either, it won’t cause these problems for other people.

Bumping dozens or hundreds of versions in extension.json needs automation. And such cases also don't need code review. We didn't want to cause problems and will adapt our tooling. This will take some time though. I guess the way the "libraryupdater" tool does it is the way to go then?

Bumping dozens or hundreds of versions in extension.json needs automation. And such cases also don't need code review. We didn't want to cause problems and will adapt our tooling. This will take some time though. I guess the way the "libraryupdater" tool does it is the way to go then?

I think you have a misconception about what force pushing is. Force pushing is pushing a commit when the current remote version is not an ancestor of the commit being pushed. See the documentation for git push --force. If an ordinary push fails, the normal solution is to rebase your commit on top of the tip of the remote branch.

Force pushing is not related to CI. If you do an ordinary push to the remote branch, CI doesn't even run. Alternatively, you can push the change to Gerrit for review, and then submit the change in Gerrit, ignoring any CI failure.