[00:50:23] (03Abandoned) 10Eileen: Merge branch 'master' of https://gerrit.wikimedia.org/r/wikimedia/fundraising/crm into test_it [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/809025 (owner: 10Eileen) [00:51:54] (03PS2) 10Eileen: Civix upgrade - boilerplate cleanup [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/809026 [00:51:56] (03PS1) 10Eileen: Put our workflow templates in our extension [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/809040 (https://phabricator.wikimedia.org/T309250) [01:00:51] (03CR) 10CI reject: [V: 04-1] Put our workflow templates in our extension [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/809040 (https://phabricator.wikimedia.org/T309250) (owner: 10Eileen) [01:35:34] (03PS1) 10Eileen: Temporary hack to wrangle versions [wikimedia/fundraising/crm/civicrm] - 10https://gerrit.wikimedia.org/r/809042 [01:38:58] is someone able to +2 ^^ - it should be a no-change on currently code but hopefully help me jenga in the update [01:57:21] AndyRussG: or wfan could one of you approve https://gerrit.wikimedia.org/r/809042 - then I can see if it helps with the test fail or is a red herring (I hate this civi-separate-repo dance) [02:29:58] eileen: hi! sure, can do so in a few minutes! [02:30:18] (just got back from kid theater presentation at school) [02:44:41] (03CR) 10AndyRussG: [C: 03+2] "the repo is the message" [wikimedia/fundraising/crm/civicrm] - 10https://gerrit.wikimedia.org/r/809042 (owner: 10Eileen) [02:44:53] eileen: ^ [02:53:03] thanks [02:53:32] (03PS1) 10Cstone: WIP: Add recurring for Braintree [wikimedia/fundraising/SmashPig] - 10https://gerrit.wikimedia.org/r/809048 (https://phabricator.wikimedia.org/T303425) [02:56:58] eileen: yw! I'm around for anouther 2 hours or so, so pls don't hesitate to ping if there's anything else! [02:57:13] also hope the travel stuff is progressing then! [02:57:15] thanks - will see how tests go - there is a boiler-plate only PR [02:57:23] (03Merged) 10jenkins-bot: Temporary hack to wrangle versions [wikimedia/fundraising/crm/civicrm] - 10https://gerrit.wikimedia.org/r/809042 (owner: 10Eileen) [02:57:34] yeah travel is complex - we were discussing but she left for the day [02:59:26] this is the boilerplate one - https://gerrit.wikimedia.org/r/c/wikimedia/fundraising/crm/+/809026 [02:59:39] (03CR) 10Eileen: "recheck" [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/809040 (https://phabricator.wikimedia.org/T309250) (owner: 10Eileen) [03:04:25] k good luck with the travel complexities!! definitely pls don't hesitate to give a shout if any support might be helpful on that count, also :) [03:04:30] k looking [03:13:42] AndyRussG: it was the magic sauce - https://gerrit.wikimedia.org/r/c/wikimedia/fundraising/crm/+/809040 [03:22:51] oh oki! [03:30:05] (03PS2) 10Eileen: 5.51rc CiviCRM upgrade [wikimedia/fundraising/crm/civicrm] - 10https://gerrit.wikimedia.org/r/805246 [03:35:03] (03CR) 10CI reject: [V: 04-1] 5.51rc CiviCRM upgrade [wikimedia/fundraising/crm/civicrm] - 10https://gerrit.wikimedia.org/r/805246 (owner: 10Eileen) [03:35:58] so AndyRussG the goal with https://gerrit.wikimedia.org/r/c/wikimedia/fundraising/crm/+/809040 is 'do nothing for now' but when I get the final civicrm upgrade patch it should kick in then (the repo dance) [03:46:11] eileen: hmmm oki right now I'm looking at https://gerrit.wikimedia.org/r/c/wikimedia/fundraising/crm/+/809026 [03:46:36] yeah - it's a bit of dark magic :-) [03:46:49] hopefully the blog link somewhat explains [03:58:27] eileen: yeah I'm getting that it is basically an automagic change and should be +2'ed equally automatically [03:58:36] :-) [03:58:57] also chcecking out this titbit https://github.com/civicrm/civicrm-core/pull/22198 [03:59:17] a bit of light reading then.... [04:03:39] eileen: so essentially the removed code is replaced by the code referenced in the mixins set for each extension in info.xml, correct? [04:03:50] yep [04:03:54] exactly [04:04:25] but I don't need to commit the mixins folder because our version of civi has them in core [04:04:48] (if I wanted to support older civi versions there is basically a polyfill type thing I could commit) [04:05:13] oki sounds swell [04:05:47] and the script run on the extensions knows which hook handlers to remove then, no? [04:06:01] or other whatnot to remove? [04:12:25] (03CR) 10AndyRussG: "Thx for this! Smol nitpick (see inline) :)" [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/809026 (owner: 10Eileen) [04:13:53] (03PS3) 10Eileen: Civix upgrade - boilerplate cleanup [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/809026 [04:14:59] (03PS4) 10Eileen: Civix upgrade - boilerplate cleanup [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/809026 [04:15:23] (03CR) 10Eileen: "yeah - that's boilerplate too - but that file won't be regenerated so good call to tidy up" [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/809026 (owner: 10Eileen) [04:21:17] eileen: I haven't smoke tested ^ ... is that okok? [04:24:11] yeah - the test cover is enough IMHO [04:24:39] oki cool! [04:26:23] (03CR) 10AndyRussG: [C: 03+2] "lgtm!!! thx!!!!!!" [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/809026 (owner: 10Eileen) [04:27:20] eileen: pretty sure I understand the gist of https://gerrit.wikimedia.org/r/c/wikimedia/fundraising/crm/+/809040... however I'd want to at give all the changes a cursory glance [04:27:29] and my brain is not in shape for that just now [04:27:56] that's fine - tomorrow is good [04:30:51] cool thx! [04:40:56] (03Merged) 10jenkins-bot: Civix upgrade - boilerplate cleanup [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/809026 (owner: 10Eileen) [13:40:09] (03PS6) 10Damilare Adedoyin: Create donor details class and add it to the createPaymentResponse class [wikimedia/fundraising/SmashPig] - 10https://gerrit.wikimedia.org/r/808988 (https://phabricator.wikimedia.org/T311428) [13:40:42] (03CR) 10Damilare Adedoyin: "Thanks jgleeson" [wikimedia/fundraising/SmashPig] - 10https://gerrit.wikimedia.org/r/808988 (https://phabricator.wikimedia.org/T311428) (owner: 10Damilare Adedoyin) [13:42:51] (03PS22) 10Damilare Adedoyin: Front-end calls to charge one-time donation via Braintree [extensions/DonationInterface] - 10https://gerrit.wikimedia.org/r/801734 (https://phabricator.wikimedia.org/T303419) [14:44:31] thanks for all the updates damilare I'll jump on them now and see if we can get this merged once and for all! [14:44:42] hi fr-tech! [14:44:59] greetings [14:45:07] hi fr-tech, thanks jgleeson [14:45:15] hello XenoRyet [14:45:17] howdy XenoRyet [14:45:20] Hi jgleeson XenoRyet damilare [14:45:28] howdy damilare cstone ! [14:45:42] hello cstone jgleeson [14:47:29] fr-tech do we have an irish wikimedia chapter? [14:50:12] we do! https://meta.wikimedia.org/wiki/Wikimedia_Ireland [14:50:52] oh no it says this is a discussion page about the formation of one [14:51:00] shoot [15:15:44] jgleeson: There's not a full chapter, but there is a fairly active user group https://meta.wikimedia.org/wiki/Wikimedia_Community_Ireland [15:20:55] (03PS1) 10Wfan: wip: parse donation, refund and chargeback [wikimedia/fundraising/SmashPig] - 10https://gerrit.wikimedia.org/r/809201 (https://phabricator.wikimedia.org/T310757) [15:21:27] (03CR) 10CI reject: [V: 04-1] wip: parse donation, refund and chargeback [wikimedia/fundraising/SmashPig] - 10https://gerrit.wikimedia.org/r/809201 (https://phabricator.wikimedia.org/T310757) (owner: 10Wfan) [15:42:59] 10Fundraising Sprint Localhost Hospitality Studies, 10Fundraising-Backlog, 10Patch-For-Review: Add donor details to createPaymentResponse - https://phabricator.wikimedia.org/T311428 (10Damilare) a:03Damilare [15:43:37] 10Fundraising Sprint Localhost Hospitality Studies, 10Fundraising-Backlog, 10FR-Braintree-Integration: Network configuration for Braintree integration - https://phabricator.wikimedia.org/T303457 (10Damilare) a:03Damilare [16:17:41] jgleeson: damilare did you run into issues getting the right ids out of braintree? I can see the token/customerid in the braintree console but everything I have tried so far have returned different ids [16:18:45] hmm not that I remember [16:18:58] anything in the graphql schema? [16:19:27] yeah theres lots but they arent returning what I want, trying different things now [16:22:16] token rings a bell [16:22:33] lemme check the api explorer a sec [16:24:44] hiii fr-tech jgleeson XenoRyet damilare cstone pcoombe dwisehaupt greg-g :) [16:26:11] hey AndyRussG [16:26:24] cstone: there's a clientMutationId that we can set [16:26:48] are you after the ID asfd4r8r3nf3ufk one [16:26:53] its shorter [16:26:57] in the console at least [16:27:09] 3m1ja7gk [16:27:11] that one/ [16:27:12] 7 characters [16:27:17] hmm [16:27:24] console calls it the payment method token its the recurring payment token basically [16:27:29] ah [16:27:45] its creating it but im failing at getting it back on the response [16:28:00] im sure its somewhere [16:28:08] isn't that the paymentMethodId [16:28:18] I think that is a recurringish token [16:28:20] not the ones i tried [16:29:29] ahh cstone I don't think we've implemented recurring yet https://graphql.braintreepayments.com/guides/vaulting_payment_methods/#vault-the-payment-method [16:29:37] looks like you get a recurring ID back once we vault it [16:29:39] oh im doing it right now [16:29:51] i can vault it but not getting the id back [16:30:29] im not using that method though [16:30:40] im vaulting it on the transaction cause that eats the nonce [16:31:25] hmm [16:33:47] do we have to add an ID to the list of things we want returned in the graphql call? [16:34:00] yeah just failing at finding the right ID [16:34:10] ah gotcha [16:35:01] we use the transaction ID as the gateway_txn_id cstone [16:35:58] so it depends on the ID you're asking about [16:36:20] Also there are some paypal specific IDs you can get from the paymentMethodSnapshot: https://graphql.braintreepayments.com/reference/#object--paypaltransactiondetails [16:37:24] ohh sorry just seeing this: `17:27:24 console calls it the payment method token its the recurring payment token basically` [16:37:58] no worries yeah trying to hunt the right ID [16:40:15] cstone: just on a call but I guess I'm curious why we're not vaulting the paymntmerthodId this way https://graphql.braintreepayments.com/guides/vaulting_payment_methods/#vault-the-payment-method [16:40:33] as that looks like it gives you back the thingy you need [16:40:53] jgleeson|call: the chargepaymentmethod call eats the nonce [16:41:08] I think there were a few implementation options and we went with the vault approach, right ejegg ? [16:41:12] its doable on the transaction I was trying it that way instead of a separate api call [16:41:44] sorry will talk more shortly but I think we might wanna discuss more [16:41:48] sorry! [16:41:57] no worries [16:42:11] trying to do the ITC thingy ha [16:43:41] i was trying this way because we'd just need to add this instead of another api call https://gerrit.wikimedia.org/r/c/wikimedia/fundraising/SmashPig/+/809048/1/PaymentProviders/Braintree/PaypalPaymentProvider.php [16:58:35] cstone: I think this is ok as we'd only be adding it in the first request [16:58:56] Here's how I was able to reproduce a recurring payment in sandbox: https://etherpad.wikimedia.org/p/recurring-payment-method [17:00:18] the first nonce generates a nonce that would be used in the subsequent payments. Notice the paymentMethod->id stays consistent after the first request [17:03:31] is this what you were asking about? [17:04:23] haha i was just asking if you had run into any id weirdness I could be doing it wrong though [17:05:11] maybe the token i was looking at in the console means nothing outside of the console [17:07:42] if i could get braintree to not decline my payments [17:09:56] (03PS2) 10Wfan: wip: parse donation, refund and chargeback [wikimedia/fundraising/SmashPig] - 10https://gerrit.wikimedia.org/r/809201 (https://phabricator.wikimedia.org/T310757) [17:10:51] yhh I don't think the nonce would show on the dashboard. I'm trying to figure out what that id corresponds to though... 🤔 [17:11:28] LOL ok so [17:11:36] the token they show in the console is the legacyId [17:11:36] (03CR) 10CI reject: [V: 04-1] wip: parse donation, refund and chargeback [wikimedia/fundraising/SmashPig] - 10https://gerrit.wikimedia.org/r/809201 (https://phabricator.wikimedia.org/T310757) (owner: 10Wfan) [17:11:42] for the paymentMethodId [17:12:07] so I was getting it back all along like you saw damilare [17:12:50] (03PS3) 10Wfan: wip: parse donation, refund and chargeback [wikimedia/fundraising/SmashPig] - 10https://gerrit.wikimedia.org/r/809201 (https://phabricator.wikimedia.org/T310757) [17:12:58] ooh same with the numbers for customer ids [17:13:36] nice! [17:13:39] ahh yes that's right, just confirmed [17:13:55] awesome cstone [17:31:05] looks like most of the ids in the console are legacyId https://etherpad.wikimedia.org/p/braintree-ids [17:31:32] Yeah, braintree got too many ids [17:37:24] 10Fundraising Sprint Localhost Hospitality Studies, 10Fundraising-Backlog: Answer ApplePay questions for iOS team - https://phabricator.wikimedia.org/T310549 (10Ejegg) a:03Ejegg [17:37:50] 10fundraising-tech-ops, 10FR-Tech-Analytics: Upgrade Fundraising Superset to 1.4.2 - https://phabricator.wikimedia.org/T311540 (10Jgreen) [17:52:11] 10fundraising-tech-ops, 10FR-Tech-Analytics: Upgrade Fundraising Superset to 1.4.2 - https://phabricator.wikimedia.org/T311540 (10Jgreen) p:05Triage→03Medium [17:55:11] hmm does this mean we need to change the gateway_txn_id to map with the legacyId? [17:56:26] currently we're using the id property of the transaction response [17:56:48] so should we be using the legacyId of the same response [18:04:30] scratch that, we can query with the id to get the legacyId in transaction details. We can't do the same with legacyId. [18:09:15] yeah damilare and who knows when they'll switch the console over to using the non legacy [18:09:43] true [18:10:32] but putting the legacyids somwhere will be helpful for looking up things in the console while it still uses them [18:11:08] something to ask them about [18:12:14] maybe theres a secret setting to switch the console over to using the ids [18:14:09] folks I've just been reading about the paymentmethodids and it looks like we can issue two graphql mutations at the same time so we could chargePayment and VaultPaymentMethod in the same initial recurring query and store the multi-use payment method at that point. Check out this https://graphql.braintreepayments.com/guides/making_api_calls/#a-more-interesting-request [18:14:39] also it looks like single-use paymentMethodIds expire after three hours by default https://graphql.braintreepayments.com/guides/vaulting_payment_methods/#error-handling [18:19:10] Interesting, on the console when I search with the id, it brings out the result but changes the query to legacyId when you go back. [18:23:22] yh we need to ask on the next call [18:24:23] oh hey cstone I can see here you are vaulting https://gerrit.wikimedia.org/r/c/wikimedia/fundraising/SmashPig/+/809048/1/PaymentProviders/Braintree/PaypalPaymentProvider.php [18:25:19] yeah jgleeson I had been getting the right id back all along it just doesnt match whats in their console cause it displays the legacy id [18:25:20] sorry if you already said that! [18:26:06] all the confusion [18:29:15] gotcha [18:29:50] my guess is that legacy is an alias for "current paypal id" ? [18:30:12] did paypal build braintree or did they by 'em ? [18:32:11] buy* [18:37:38] Looks like they were acquired: https://techcrunch.com/2013/09/26/paypal-acquires-payments-gateway-braintree-for-800m-in-cash [18:40:22] oh maybe the legacy means something else then [18:40:26] thanks damilare [18:40:40] interesting article. they bought venmo for $26mln! [19:01:36] cstone: thanks so much for this write up. bookmarked https://etherpad.wikimedia.org/p/braintree-ids [19:01:54] etherpad needs "lock" button [19:01:58] a* [19:02:03] we can put it on the wiki :P [19:02:13] yes we should! [19:02:21] i can bookmark is there too [19:02:31] so many bookmarks \o/ [19:02:38] i had all those ids in debug just wanted to put them somewhere before i took it out and forgot what they all were [19:04:10] 10Fundraising Sprint Localhost Hospitality Studies, 10Fundraising-Backlog, 10FR-Braintree-Integration: Network configuration for Braintree integration - https://phabricator.wikimedia.org/T303457 (10Damilare) The hostnames and IP address for the new Braintree integration gotten from [[ https://developer.paypa... [19:26:02] (03PS23) 10Damilare Adedoyin: Front-end calls to charge one-time donation via Braintree [extensions/DonationInterface] - 10https://gerrit.wikimedia.org/r/801734 (https://phabricator.wikimedia.org/T303419) [19:34:47] 10Fundraising Sprint Localhost Hospitality Studies, 10Fundraising-Backlog, 10fundraising-tech-ops, 10FR-Braintree-Integration: Network configuration for Braintree integration - https://phabricator.wikimedia.org/T303457 (10Dwisehaupt) [19:36:24] (03CR) 10Jgleeson: [C: 03+2] "Working great! thanks" [wikimedia/fundraising/SmashPig] - 10https://gerrit.wikimedia.org/r/808988 (https://phabricator.wikimedia.org/T311428) (owner: 10Damilare Adedoyin) [19:38:28] (03Merged) 10jenkins-bot: Create donor details class and add it to the createPaymentResponse class [wikimedia/fundraising/SmashPig] - 10https://gerrit.wikimedia.org/r/808988 (https://phabricator.wikimedia.org/T311428) (owner: 10Damilare Adedoyin) [19:51:21] 10Fundraising Sprint Localhost Hospitality Studies, 10Fundraising-Backlog, 10FR-Braintree-Integration: Setup production accounts/access for Braintree - https://phabricator.wikimedia.org/T310100 (10XenoRyet) p:05Triage→03High [19:57:37] 10Fundraising Sprint High velocity swallows, 10Fundraising Sprint Incantation optimisation, 10Fundraising Sprint Juggalology 2022, 10Fundraising Sprint Kermit hopping principle, and 4 others: Convert offline2civicrm to a CiviCRM extension - https://phabricator.wikimedia.org/T270669 (10XenoRyet) [20:40:07] (03PS3) 10Eileen: 5.51rc CiviCRM upgrade [wikimedia/fundraising/crm/civicrm] - 10https://gerrit.wikimedia.org/r/805246 [20:44:51] (03CR) 10CI reject: [V: 04-1] 5.51rc CiviCRM upgrade [wikimedia/fundraising/crm/civicrm] - 10https://gerrit.wikimedia.org/r/805246 (owner: 10Eileen) [20:50:46] 10Fundraising-Backlog: Vendor to Contractor Civi access - https://phabricator.wikimedia.org/T311548 (10MDemosWMF) [20:58:12] (03CR) 10Eileen: "recheck" [wikimedia/fundraising/crm/civicrm] - 10https://gerrit.wikimedia.org/r/805246 (owner: 10Eileen) [21:32:24] (03PS1) 10Eileen: Remove recurring_global_collect [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/809294 [21:37:12] ejegg: can you see why this is failing? https://gerrit.wikimedia.org/r/c/wikimedia/fundraising/crm/civicrm/+/805246 [21:38:33] nothing to do with 'Could not find the permission: engage role', is it eileen? [21:38:44] I don't think that is what is fatal [21:38:55] let me check another successful test run [21:39:25] 10Fundraising Sprint Localhost Hospitality Studies, 10Fundraising-Backlog, 10fundraising-tech-ops, 10FR-Braintree-Integration: Network configuration for Braintree integration - https://phabricator.wikimedia.org/T303457 (10Dwisehaupt) As mentioned in the sprint meeting, if we (fr-tech-ops) can be provided w... [21:39:40] actually it might be - I'll see if it works locally [21:42:05] 10Fundraising-Backlog, 10Patch-For-Review, 10Wikipedia-Android-App-Backlog (Android Release FY2021-22): English fundraising message test for Android app users in India in June 2022 - https://phabricator.wikimedia.org/T305405 (10TSkaff) Hi @Sharvaniharan! Can we assume this is complete? Many thanks for your h... [21:58:06] (03PS1) 10Eileen: Remove engage role for now [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/809301 [21:58:48] ejegg: are you ok to approve ^^ then - will allow me to see if it is that & it's such a minor / add-on feature that I'd rather disable for now rather than get blocked on it pre-upgrade [22:03:57] sure eileen [22:12:32] (03CR) 10Ejegg: [C: 03+2] Remove engage role for now [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/809301 (owner: 10Eileen) [22:29:38] (03CR) 10Eileen: "recheck" [wikimedia/fundraising/crm/civicrm] - 10https://gerrit.wikimedia.org/r/805246 (owner: 10Eileen) [22:45:22] hmm - so I can see there is a path problem now - Error: Class 'Civi\Api4\Action\WMFConfig\SyncGeocoders' not found in Civi\Api4\WMFConfig::syncGeocoders() (line 37 of [23:08:15] (03PS1) 10Eileen: Fix Casing issue [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/809316 [23:11:32] (03PS4) 10Wfan: WIP: Braintree Audot parse donation, refund and chargeback [wikimedia/fundraising/SmashPig] - 10https://gerrit.wikimedia.org/r/809201 (https://phabricator.wikimedia.org/T310757) [23:24:20] alright, 7:30am start time and I'm spent [23:28:58] (03Abandoned) 10Ejegg: Filter out + signs from DLocal address fields [extensions/DonationInterface] - 10https://gerrit.wikimedia.org/r/800033 (https://phabricator.wikimedia.org/T308167) (owner: 10Ejegg) [23:29:54] (03CR) 10Ejegg: [C: 03+2] "Thanks! Nice to simplify." [extensions/DonationInterface] - 10https://gerrit.wikimedia.org/r/808986 (https://phabricator.wikimedia.org/T308167) (owner: 10AndyRussG) [23:31:13] 10Fundraising-Backlog, 10fundraising-tech-ops: Vendor to Contractor Civi access - https://phabricator.wikimedia.org/T311548 (10Dwisehaupt) [23:31:52] (03PS2) 10Ejegg: Fix Casing issue [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/809316 (owner: 10Eileen) [23:32:41] (03CR) 10Ejegg: [C: 03+2] Fix Casing issue [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/809316 (owner: 10Eileen) [23:37:44] 10Fundraising-Backlog, 10fundraising-tech-ops: Vendor to Contractor Civi access - https://phabricator.wikimedia.org/T311548 (10Dwisehaupt) @MDemosWMF There are a few things we'll need to do. At a minimum we'll want to: * change her email in civi to the new address * reissue her ssl client certificate with the... [23:39:34] (03Merged) 10jenkins-bot: Remove removal of "+" symbols in AstroPay signature [extensions/DonationInterface] - 10https://gerrit.wikimedia.org/r/808986 (https://phabricator.wikimedia.org/T308167) (owner: 10AndyRussG) [23:40:41] * ejegg is unimpressed with crAIyon's results for 'snake eating an elephant' [23:41:36] ejegg: it does well with like fictional character in a place or fictional character in other fictional place [23:44:54] https://twitter.com/weirddalle/status/1541717593282809857/photo/1 [23:46:25] ok, that's pretty good [23:47:31] (03Merged) 10jenkins-bot: Fix Casing issue [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/809316 (owner: 10Eileen) [23:48:44] theres a quality movie sonic trailcam one [23:49:39] 'photorealistic fundraising in dublin' looks like some weird doctor who segments.