Jdforrester-WMF added a comment.

  In T279898#7028202 <https://phabricator.wikimedia.org/T279898#7028202>, 
@Addshore wrote:
  
  > So the current state would be:
  >
  > - Make mediawiki & extensions compatible with 2 versions of libraries
  >   - Tests that use mediawiki-vendor will run using the old versions of the 
libraries
  >   - Tests that do composer install will probably run using the newer 
version of the libraries
  >   - Phan right now will always run using the older versions of the 
libraries (which can make such changes harder)
  >   - I don't think there is anything in CI to actually make sure that the 
library changes in composer.json files are compatible with what is in 
mediawiki-vendor (see T179663 <https://phabricator.wikimedia.org/T179663>)
  > - Bump mediawiki-vendor versions, once everywhere can use the newer versions
  >   - I don't think there are any checks to see if what is in the 
mediawiki-vendor composer.json actually lines up with what the other packages 
ask for (see T179663 <https://phabricator.wikimedia.org/T179663>)
  >   - At this point Phan (and possibly other tests) can start to fail (as 
happened before this ticket was created) leading to broken main branches
  > - Fix the main branches / remove the back compat / remove the lower 
composer dependencies
  >   - Everything is okay again
  >
  > I guess in this case the depends-on patches would be in the extensions etc 
on the bump to mediawiki-vendor?
  > Though it's hard to tell if they are needed as CI would be green at this 
point?
  
  Well, no.
  
  It's exceptionally rare, and not really supported, that multiple extensions 
have the same explicit dependency on something in vendor; certainly.
  
  You're making it far more complex than it should be, mostly because Wikibase 
is doing a bunch of things it's not meant to.
  
  You're meant to use MW's extension dependency system to depend on the 
extension that provides the composer dependency (in your case, Wikibase).
  
  Supporting multiple versions of composer libraries is not an expected 
outcome, except for people trying to support multiple versions of MediaWiki in 
the master branch (which is very heavily discourage and not actually supported 
by CI) or temporarily for transitional issues (like our support in core for two 
versions of dbal, because there's no version of dbal that supports both PHP 7.2 
and 8.0).
  
  You're meant to:
  
  A) Write a patch in vendor that bumps the composer dependency.
  B) Write a patch in the extension that bumps the composer dependency and 
makes things work, dependent on (A).
  C) Merge them together.
  
  https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Wikibase/+/676077 
should have depended on 
https://gerrit.wikimedia.org/r/c/mediawiki/vendor/+/676007 (not the other way 
around); that way, you would have been actually testing in CI the world that 
was going to happen once things merged. Of course, because WikibaseLexeme is 
not in the gate, at the end of the Wikibase patch landing WikibaseLexeme would 
have been broken, but merging 
https://gerrit.wikimedia.org/r/c/mediawiki/extensions/WikibaseLexeme/+/676419 
would have then resulted immediately in a functioning world for everyone. (Had 
WikibaseLexeme been in the gate, you'd have needed to force-merge the Wikibase 
patch, which would have taken down CI for ~ an hour for everyone else, so…).
  
  I'd strongly recommend that you drop all of the `wikibase` composer 
dependencies from WikibaseLexeme //etc.//. They're all pulled in by Wikibase 
itself, and you actually care about those versions, as otherwise the code in 
Wikibase you're depending on will die.
  
  > In T279898#7027938 <https://phabricator.wikimedia.org/T279898#7027938>, 
@Jdforrester-WMF wrote:
  >
  >> The plan is to get phan fast enough that we can merge it into the regular 
`composer test` job in all repos, at which point it'll be covered everywhere 
equally. See T226945: Decide on future of running Phan tests on release 
branches <https://phabricator.wikimedia.org/T226945> for more details.
  >
  > I guess (but didn't check) that this would also solve the problem as jobs 
already exist doing composer test for mediawiki-vendor & composer install
  
  It would.
  
  > What ever happened to us offloading some of our CI workloads onto other 
cloudy providers?
  > That would make everything go much faster with very little effort
  >
  >> [2021-01-22 20:25:58] <addshore> James_F: mildly interesting, i ran a 
wmf-quibble-selenium-php72-docker job that had run on jenkins on github actions 
just to see what the test execution time was, 23 mins on jenkins, 16 mins on 
Github Actions https://usercontent.irccloud-cdn.com/file/0HH0fiSK/image.png
  
  The team made the decision to migrate to replace the current 'legacy' CI 
system (to GitLab, as you may have heard). Most of the effort is going into 
that, AIUI.
  
  The problem with the legacy CI is not infrastructure/speed, it's complexity 
and centralised control. Adding more centralised complexity will not make 
things better.

TASK DETAIL
  https://phabricator.wikimedia.org/T279898

EMAIL PREFERENCES
  https://phabricator.wikimedia.org/settings/panel/emailpreferences/

To: Jdforrester-WMF
Cc: Krinkle, WMDE-leszek, hashar, Jdforrester-WMF, Tonina_Zhelyazkova_WMDE, 
Tarrow, Addshore, Aklapper, Invadibot, maantietaja, Mgagat, Akuckartz, 
Totolinototo3, Redabr4, Zanziii, Sadisticturd, Eladio.15, DannyS712, Nandana, 
A.S.Kochergin, Lahi, Gq86, Daimona, GoranSMilovanovic, QZanden, LawExplorer, 
_jensen, rosalieper, Scott_WUaS, Wikidata-bugs, aude, Mbch331
_______________________________________________
Wikidata-bugs mailing list
Wikidata-bugs@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikidata-bugs

Reply via email to