Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WMF Gerrit hosted extensions #2080

Closed
reedy opened this issue Dec 9, 2016 · 14 comments
Closed

WMF Gerrit hosted extensions #2080

reedy opened this issue Dec 9, 2016 · 14 comments

Comments

@reedy
Copy link
Contributor

reedy commented Dec 9, 2016

Related to #2079 it'd be really useful if we could get a handle of what is canonically hosted where, and look at "deleting"/actively deprecating (empty out master, and leave an explicit README?) the WMF hosted extensions if they're not being synced between here and Gerrit

@reedy
Copy link
Contributor Author

reedy commented Dec 9, 2016

@JeroenDeDauw
Copy link
Member

+1 to removing old copies and pointing people to the current location

Not sure if it is useful to have an issue about this here if there already is one on Phabricator. Also not sure if any of the involved devs still care enough at this point about what is on Gerrit to act on this issue.

@kghbln
Copy link
Member

kghbln commented Dec 9, 2016

Not sure if it is useful to have an issue about this here if there already is one on Phabricator. Also not sure if any of the involved devs still care enough at this point about what is on Gerrit to act on this issue.

I also think that Phabricator is the place to handle this particular issue. T151968 should however have been created by us back in April. Apart from that I think this may just be a git rm -r and placing the suggested "GONE_TO_GITHUB.txt" in Diffusion.

@reedy
Copy link
Contributor Author

reedy commented Dec 10, 2016

Mostly filing a task here to bring your attention to it properly :)

@reedy
Copy link
Contributor Author

reedy commented Dec 10, 2016

  1. [00:54:45] (PS1) Reedy: SemanticMediaWiki is now hosted over at GitHub [extensions/SemanticMediaWiki] - https://gerrit.wikimedia.org/r/326215 (https://phabricator.wikimedia.org/T151968)
  2. [00:56:24] (PS1) Reedy: SemanticResultFormats is now hosted over at GitHub [extensions/SemanticResultFormats] - https://gerrit.wikimedia.org/r/326217 (https://phabricator.wikimedia.org/T151968)
  3. [01:02:15] (PS1) Reedy: SemanticInterlanguageLinks is now hosted over at GitHub [extensions/SemanticInterlanguageLinks] - https://gerrit.wikimedia.org/r/326220 (https://phabricator.wikimedia.org/T151968)
  4. [01:03:37] (PS1) Reedy: SemanticWatchlist is now hosted over at GitHub [extensions/SemanticWatchlist] - https://gerrit.wikimedia.org/r/326221 (https://phabricator.wikimedia.org/T151968)
  5. [01:05:15] (PS1) Reedy: SemanticSignup is now hosted over at GitHub [extensions/SemanticSignup] - https://gerrit.wikimedia.org/r/326222 (https://phabricator.wikimedia.org/T151968)
  6. [01:06:26] (PS1) Reedy: SemanticMaps is now hosted over at GitHub [extensions/SemanticMaps] - https://gerrit.wikimedia.org/r/326223 (https://phabricator.wikimedia.org/T151968)
  7. [01:07:52] (PS1) Reedy: SemanticExternalQueryLookup is now hosted over at GitHub [extensions/SemanticExternalQueryLookup] - https://gerrit.wikimedia.org/r/326225 (https://phabricator.wikimedia.org/T151968)
  8. [01:10:38] (PS2) Reedy: SemanticMediaWiki is now hosted over at GitHub [extensions/SemanticMediaWiki] - https://gerrit.wikimedia.org/r/326215 (https://phabricator.wikimedia.org/T151968)
  9. [01:10:58] (PS2) Reedy: SemanticInterlanguageLinks is now hosted over at GitHub [extensions/SemanticInterlanguageLinks] - https://gerrit.wikimedia.org/r/326220 (https://phabricator.wikimedia.org/T151968)
  10. [01:11:33] (PS2) Reedy: SemanticWatchlist is now hosted over at GitHub [extensions/SemanticWatchlist] - https://gerrit.wikimedia.org/r/326221 (https://phabricator.wikimedia.org/T151968)
  11. [01:13:14] (PS1) Reedy: SemanticGlossary is now hosted over at GitHub [extensions/SemanticGlossary] - https://gerrit.wikimedia.org/r/326228 (https://phabricator.wikimedia.org/T151968)
  12. [01:15:39] (PS1) Reedy: SemanticExtraSepcialProperties is now hosted over at GitHub [extensions/SemanticExtraSpecialProperties] - https://gerrit.wikimedia.org/r/326230 (https://phabricator.wikimedia.org/T151968)
  13. [01:18:05] (PS1) Reedy: SemanticMetaTags is now hosted over at GitHub [extensions/SemanticMetaTags] - https://gerrit.wikimedia.org/r/326231 (https://phabricator.wikimedia.org/T151968)

@reedy
Copy link
Contributor Author

reedy commented Dec 10, 2016

I do note SemanticCompoundQueries has a MOVED.md instead

@mwjames
Copy link
Contributor

mwjames commented Dec 10, 2016

I've seen claims from WMF developers that "what's not in a WMF repo, cannot be searched" which means that if you break hooks etc, then it is unlikely those will be detected and untimely break our extensions.

@JeroenDeDauw
Copy link
Member

Thanks @reedy! +2 to those changes from my side

@kghbln
Copy link
Member

kghbln commented Dec 10, 2016

I've seen claims from WMF developers that "what's not in a WMF repo, cannot be searched" which means that if you break hooks etc, then it is unlikely those will be detected and untimely break our extensions.

@reedy Is there actually a page on mw.o listing all these depreciations and removals, e.g. "ArticleAfterFetchContent", depreciated in MW 1.21, scheduled for removal in MW 1.29 etc. and allowing developers to have a look if they missed the respective e-mail on wikitech-l?

@reedy
Copy link
Contributor Author

reedy commented Dec 10, 2016

I've seen claims from WMF developers that "what's not in a WMF repo, cannot be searched" which means that if you break hooks etc, then it is unlikely those will be detected and untimely break our extensions.

Which is kinda true. Unless you checkout all the other repos. But then, there's so many other extensions we don't know exist. You guys are just one of the larger ecosystems that we know of. Having old copies of extensions "rotting" (that people are likely using) in the WMF Gerrit doesn't help matters. It's not like gerrit is syncing back changes from github

Of course, isn't this why you should have tests?

It shouldn't be core developers responsibility to go around finding all the extensions all over the place to fix them; we should just be documenting them correctly (RELEASE-NOTES etc), and making it easy for 3rd parties (like yourselves) to know what is being removed, and potentially when. Along with things like soft deprecation (@deprecated since 1.XX) for a few versions, followed by hard deprecation (emitting notices/warnings with $wgDevelopmentWarnings set to true), followed by actually removing them, which will break things. I know some people don't do that (and in some cases, either it's not used anywhere, so it can go, or maintaining that back compat becomes a huge maintenance burden that it has to happen. The latter is rare) I mean, in these cases, they were soft deprecated since 1.21, which was released 3 years ago. If people can't/won't fix things themselves after 3 years... Why should we do it for them? Even more so for extensions with active and varied development teams.

Similarly, what about Wikia? Well, they've effectively forked, so bad example... What about WikiHow etc who host their own extensions?

It's a best effort thing. We shouldn't expect core developers to have to checkout the 800+ extensions from gerrit, and then go around checking out (and keeping up to date) clones of many other extensions, it's just unviable. Never mind for the inexperienced, like in GCI tasks etc. It takes me long enough to update these clones on my internet connection

@reedy Is there actually a page on mw.o listing all these depreciations and removals, e.g. "ArticleAfterFetchContent", depreciated in MW 1.21, scheduled for removal in MW 1.29 etc. and allowing developers to have a look if they missed the respective e-mail on wikitech-l?

Not really... The individual pages will tell you when removed etc, but I don't think that's a viable way for you to get the information. Like I say, RELEASE-NOTES should contain the relevant information of what was removed (and potentially, what was deprecated in a release). Using a reasonable IDE, with correct annotation notices, it would be possible to search for deprecated code usages, and know you need to do something about them

The deprecation life cycle is a bit unwritten, though I believe there was an RfC about this... https://www.mediawiki.org/wiki/Deprecation is what we have currently.

Personally, I try (noting, best efforts here) to not remove anything from core, when there are still usages of it. Around a year ago we did a blitz on removing old message functions, which we did by fixing up all usages in extensions, before removing from core.... As they had been deprecated for many versions already. In some cases, with hard deprecation for numerous versions. By this point, just removing is kinda fair game if it's not hosted somewhere like gerrit where we can easily see usages need fixing

@reedy
Copy link
Contributor Author

reedy commented Dec 10, 2016

I've merged all the ones that I made patches for last night...

Can someone check if I missed any please? :)

@kghbln
Copy link
Member

kghbln commented Dec 10, 2016

Can someone check if I missed any please? :)

Just checked. All extensions were covered. Thanks for fluff.

@reedy Thank you for your very elaborate information and you view on this!

I believe this issue can now be closed as such? Though @JeroenDeDauw @mwjames we should find a way to automatically detect the depreciation warnings, perhaps by me adding $wgDevelopmentWarnings = true; to the sandbox configuration and check the error log every time I upgrade to an new stable branch. Well, this is semi-automatic I guess.

@reedy
Copy link
Contributor Author

reedy commented Dec 10, 2016

I think, unit tests run with $wgDevelopmentWarnings enabled (maybe look at changing your travis config?) will surface hard deprecation notices very nicely

@kghbln
Copy link
Member

kghbln commented Jan 13, 2017

$wgDevelopmentWarnings is already within the travis configuration file. Toi, toi, toi that respective issues surface

@kghbln kghbln closed this as completed Jan 13, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants