[14:00:28] Technical Advice IRC meeting starting in 60 minutes in channel #wikimedia-tech, hosts: @bd808 - all questions welcome, more infos: https://www.mediawiki.org/wiki/Technical_Advice_IRC_Meeting [14:03:11] I question your questions. :p [14:03:39] only one host today? (I can’t help out, unfortunately, I’ll be in a meeting) [14:04:02] It would be ironic if you were meeting the host, no? [14:04:29] I mean meeting the host during your meeting [14:50:12] Technical Advice IRC meeting starting in 10 minutes in channel #wikimedia-tech, hosts: @bd808 - all questions welcome, more infos: https://www.mediawiki.org/wiki/Technical_Advice_IRC_Meeting [14:56:59] Lucas_WMDE: I can probably survive solo, but if there is anyone in the WMDE office that can join me that would be appreciated :) [14:59:51] "The cleaning lady is in a bit early today" [15:01:17] * bd808 waits for the bot to notice the time [15:02:04] * AntiComposite nudges wm-bot [15:03:18] bad bot! [15:03:45] Ok folks, the bot is AWOL but it is still TAIM time! [15:04:01] I have a question about compser use, since I basically am not a mw dev but only play one on wmf tv :-P [15:04:06] I'm a solo host today, but I see other awesome folks idling in the channel too [15:04:36] apergos: I know some things about Composer. What's your question? [15:05:08] I git pulled and checked out 1.34-wmf.19, then removed vendor and the composer lock files and tried composer install/update [15:05:42] I got the dreaded fail "would ocnflict with minimum stability requirements" message [15:06:17] the conflict was in top level symfony/yaml wanting 3.4.8 and in wikimedia/smash-pig wanting ^2.8 [15:06:28] what's the 'right thing to do'? [15:06:54] I did the 'wrong but got me running for now' fix, i.e. put ^2.8 at the top level composer.json file [15:07:04] hmmm... good question for sure. [15:07:42] do you know which extension has a composer.json that is pulling in wikimedia/smash-pig? [15:08:12] the other thing that conflicted was DonationInterface with something-or-other and I needed to chang emonolog from 1.22.` to 1.24.0 and then everything was ok [15:08:43] I think cirrussearch might have been implicated in the first one, iirc [15:10:23] I *think* I remember that https://www.mediawiki.org/wiki/Fundraising_tech/SmashPig is usually on a different MediaWiki branch in production than the "main" wikis [15:10:54] its definitely stuff in the realm of the Fundraising Tech team [15:12:08] I'm wondering if the version mismatch is because of that, that the extension is matching an older version of MediaWiki core than the 1.34.x series [15:16:04] what's annoying is I shuld be able to git pull/checkout then run composer and have it 'just work' [15:16:13] oh... let's look to see which version of core the 'fundraising' role in MediaWiki-Vagrant is using! That might be the right clue [15:16:15] instead of fiddle around and remove stuff that is actually submodules anyways [15:18:00] 933a00217017bf56eb5de3e5d42e1611389f1f54 this is the monolog change in the top level composer.json [15:18:18] e0be7e8f26110c1ae0e32b7a176fd1649daf0dc1 for the actual patchset [15:18:20] "fundraising/REL1_31" is the pinned branch in MediaWiki-Vagrant for the fundraising role [15:18:21] IIRC FR were using a newer monolog [15:19:22] fundamentally, the Fundraising code for payment processing runs differently than the content wikis in production [15:19:23] e000ebf010370015058a55b249c45b2f14e337a9 here is the cirrussearch yaml update for the top level composer file [15:19:54] in part because of the PCI-DSS requirements for the environment where we handle credit card data [15:20:17] PCI-DSS == https://en.wikipedia.org/wiki/Payment_Card_Industry_Data_Security_Standard [15:20:45] 299013eb76d838fa5f6c5f353222400bebde6dfd that's the commit for smash-ping (so the yaml issue) for that composer file [15:21:03] I think tht should be all the relevant commits for the two issues [15:21:08] apergos: are you using the "all extensions" sub module in this environment you are testing? [15:21:19] uh [15:21:34] beats me what the heck I am using :-D [15:21:53] heh. ok. [15:22:09] * bd808 goes to look at the 1.34-wmf.19 tree [15:22:27] I see a bunch of submodules separately configured in my .git/config and i'm sure i didn't add them [15:22:48] I probably did some sort of recursive pull across all submodules and it gave me whatever [15:25:39] the pinned submodules for 1.34-wmf.19 are at https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+/wmf/1.34.0-wmf.19/.gitmodules [15:25:58] looks like wht I have [15:26:09] you see CirrusSearch and DonationInterface in there [15:27:42] because I'm not even sure what the 'right' workflow for composer is (like, I've never actually read the docs or anything) I'll just shut up now and let you folks explain what I should be doing... [15:28:18] its complicated honestly [15:28:52] the way that Composer is used in MediaWiki is "special" and not quite what a normal Composer workflow would look like [15:29:04] I don't know a normal one either :-D [15:29:39] We manually curate the mediawiki/vendor repo as a frozen version of libraries that are used in the Wikimedia production wikis [15:30:11] in part because of this potential for version conflicts for libraries when you are using a arbitrary group of extensions [15:30:12] but you don't provide lock files, just the composer.json files [15:30:36] the vendor repo is not part of the git repo is it? [15:30:38] there is a lock in mediawiki/vendor, but not in mediawiki/core [15:30:50] huh [15:31:02] well I outright removed mediawiki/vendor out of desperation [15:33:39] this is the composer.lock that would be used in production with the 1.34-wmf.19 branch -- https://github.com/wikimedia/mediawiki-vendor/blob/wmf/1.34.0-wmf.19/composer.lock [15:34:07] and here is the composer.json that would have gnerated that lock at some point in time -- https://github.com/wikimedia/mediawiki-vendor/blob/wmf/1.34.0-wmf.19/composer.json [15:34:35] which interestingly... does not include smashpig at all... [15:35:30] "conflict": { "symfony/config": "<2.8", "symfony/dependency-injection": "<3.4", "symfony/yaml": "<3.4" }, [15:35:34] what does that bit mean? [15:35:42] (sorry bad formatting) [15:36:40] BTW if there's anyone else in here with questions, I don't mean to hog the session. I can wait til later! [15:37:15] https://getcomposer.org/doc/04-schema.md#conflict -- that's a way that a library publisher can state things that known not to work with a given version of their library [15:37:44] usually because they declare the same classes due to some kind of refactoring [15:39:21] Like if myorg/foolib had a Bar class until v1.0.1 and after v1.0.1 you should be pulling in myorg/barlib instead then the myorg/barlib composer.json could declare that it conflicts with myorg/foolib <1.0.1 [15:39:58] hm hm hm [15:43:12] ./extensions/DonationInterface/composer.json this is where the smash-pig reference comes from, which leads to the bad yaml version [15:43:20] at the top level, there is just the other (conflicting) yaml [15:43:33] for composer.json I mean [15:43:39] there seems to be a special vendor git repo for DonationInterface too -- https://github.com/wikimedia/mediawiki-extensions-DonationInterface-vendor [15:43:47] huh [15:43:55] I bet I have the submodule [15:44:10] ejegg: can you help apergos and I understand a bit how composer works with DonationInterface? [15:44:15] [submodule "extensions/DonationInterface"] [15:44:15] active = true [15:44:15] url = https://gerrit.wikimedia.org/r/mediawiki/extensions/DonationInterface [15:44:19] .git/config [15:44:22] * bd808 appeals to authority [15:44:38] please feel free [15:45:24] last commit in the DonationInterface/vendor repo was March 5 and related to smashpig [15:48:57] may 30 is the cirrussearch change to add symfony/yaml to the top level composer file [15:49:05] bd808: oh hey, we can delete that special repo now! [15:49:31] we had previously been installing composer libs for DonationInterface in its own vendor dir [15:49:51] but now we're using composer-merge-plugin to put them in the mw root vendor dir [15:50:29] let's see... bad yaml version? [15:50:35] top level wants 3.4.something [15:50:45] donation interface via smash-pig wants ^2.8 [15:50:46] ejegg: cool. My mostly abandonware composer-merge-plugin library is still doing some good then :) [15:51:19] heh, it is! We started using it for our CiviCRM install and its extensions too [15:51:53] OK, we can definitely bump the yaml verson for smash-pig [15:52:17] ejegg: the story so far is that apergos checked out 1.34-wmf.19 and is trying to use `composer install` to create a vendor repo from scratch and getting version conflicts from smashing all the Extension composer.json files together using compsoer-merge-plugin [15:52:37] I mean initially I tried composer update with whatever I had already and that barfed [15:52:41] and we are kind of trying to stumble around and recreate why that is a problem an what the "fix" is [15:52:48] ok, which set of extensions is being installed? [15:52:51] so I poked around some and then finally torched the vendor directory compeltely [15:52:57] well whatever git pull gives me [15:53:05] for 1.34.wmf-19 [15:53:18] ejegg: I think ... everything in https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+/wmf/1.34.0-wmf.19/.gitmodules [15:53:22] I'm not going to use them all in local settings of course [15:53:27] which honestly might be the problem [15:53:43] oh boy, that's a lot! [15:53:49] but I shouldn't have to remove the ones I don't want in order to get composer to play nice [15:54:05] because in a week I'll be right back here updating to the nextbranch for testing... [15:54:08] I think that is the list of all extensions that are enabled in the union of all production Wikimedia wikis [15:54:10] right, and DonationInterface is loaded on main-cluster so banners can re-use some messages [15:54:42] and that will be git pull (which will get all the submodules), checkout the branch and oh let's go play with composer again... [15:54:45] I think for a while we maintained a messages-only branch [15:55:09] For now, I can at least get rid of that yaml conflict [15:55:49] ty [15:56:07] then there's the monolog one next [15:56:12] and after that everything is ok [15:56:16] Didn't we have two entry points for DI at one point? [15:56:17] (For those of you following along in the logs or lurking in real time: this is what being a pro software engineer is like. We don't have magic powers, just search and other folks to ask quesions of.) [15:56:34] We should probably just bump monolog in core/vendor [15:57:20] ok, I think we set the monolog version in DI to match the composer.json of mediawiki's last LTS version (1.31) [15:57:40] I should be able to open that up enough to match the current mw version too [15:57:44] that conflicts with master DI and whatever MW core has? [15:57:44] I think 1.24.0 is the one you want all around [15:58:08] apergos: that should work with mw 1.31 too? [15:58:28] uh I don't know about that [15:58:43] but 1.24.0 is the one in the top level composer.json for 1.34-wmf19 [15:58:51] * bd808 falls into the rabbit hole of reading the Monolog 2.x upgrade notes and quickly backs up [15:58:56] https://github.com/wikimedia/mediawiki-vendor/commit/df087ef223c91fc52c6e9c515a122645e241b757 [15:58:58] yeah don't go there nopenopenope [15:58:58] I already did [15:59:02] Reedy: a loooongg time back DI was actually used on the main cluster to send donors to paypal [15:59:19] reedy, that's the top level one [15:59:23] it's the di one that's the problem [15:59:30] but then we started accepting cards and needed to go to our own little cluster to limit PCI scope [15:59:43] bd808: I like how monolog 2.0.0-beta1 is php ^7.1, but beta2 is ^7.2 [15:59:45] I guess banners were already using a bunch of DI messages, so we left it installed there [16:00:05] though none of the configuration to show payment forms is actually present on the main cluster [16:00:06] "monolog/monolog": "~1.24.0", [16:00:20] meanwhile, our payments-cluster stick to the last LTS [16:00:49] I don't see "Donation Interface" on https://en.wikipedia.org/wiki/Special:Version, so I'm sort of wondering where if anywhere we actually enable it outside the payment cluster [16:00:51] so as that ages we get a bunch of these version conflicts with core/master [16:00:58] oh hmm [16:01:18] if DI could just get pulled out of the bundle, so much the better (as far as I'm concerned, maybe some folks have requested to have it in, dunno) [16:01:20] it's loaded into extension-list for l10n [16:01:57] ugh [16:02:42] the saga of trying to recreate "production" in a dev environment is an epic tail of woe and strife ;) [16:03:05] I can ask the banner team to list which of the DI messages they're still using [16:03:07] *tale [16:03:27] if it's a small enough list we can maybe just copy them into the Mediawiki namespace on the relevant wikis [16:03:27] Half wonder if WikimediaMessages might be a better place for them to live [16:04:00] yeah, especially if there's not much overlap between usage in payment forms and usage in banners [16:04:20] creating a new set of folders/files in there isn't an issue [16:05:06] bd808: you would know all about that *cough*mw-vagrant*cough* [16:05:11] I'll make a phab task to investigate moving the messages there so we can take DI out of the bundle [16:05:17] * bd808 blushes [16:05:36] please drop a link here and I'll subscribe [16:07:01] The Technical Advice IRC meeting is technically over. Tune in next week for more tracing of mysterious code paths and real-time internet searches! [16:07:41] I don't think we solved apergos' problem, but things are looking up for the plucky adventurers. [16:07:42] sorry to be the sole questioner! [16:08:00] no! thanks for coming and asking questions [16:08:07] well it's not compeltely solved but now I know I could ... open a phab task to report the conflict and that it's legit an issue [16:08:20] I also know the intent of the mw composer files in the repo (s) [16:08:22] so that's a win! [16:09:00] https://phabricator.wikimedia.org/T231474 [16:09:22] Heh, I'm glad I decided to drop in on this meeting for once! [16:10:01] I am too :-D [16:17:51] (bd808, side note, I don’t think mw-bot ever announces the beginning of the meeting, just 60 and 10 minutes before) [16:18:11] Lucas_WMDE: I checked the cron and I think you are correct. [16:19:07] Lucas_WMDE: Do I need to update the TAIM page on mw.o or will somebody else do that tomorrow? [16:19:39] just about this meeting being over and the date/time of the next one [16:29:42] not sure who usually does it [16:30:03] there’s been a few weeks where I only updated it after the wm-bot announcement for the next week pinged last week’s hosts :/ [16:30:19] but I’ll update it now [22:07:14] Hi [22:07:36] I'm a St. S operating system [22:10:46] I'm using the CentOS 7 operating system. I have attempted to install the wiki and gave a message on your server sqlite3 the old version of installation. To use this app, you need to update to the top version. But the new version of 3.7 is not currently on the repositories of the operating system. What do I do? [22:12:34] /msg NickServ identify 405371Ma@# [22:14:34] Is there anyone who has answered my question? [22:18:07] . Hi. Aloooo [22:53:12] Hi. Can you Speaking Persian? [23:11:09] I will let you know when I see Mahdi and I will deliver that message to them [23:11:09] @notify Mahdi Your best chance is probably to switch to using MySQL or MariaDB as the database instead of sqlite3. Better performance, and better support in the codebase itself. [23:12:39] o/ Hi. I'm unable to create a task on phabricator. Keep getting the error "Request ID is required". Anyone know what's up?