Page MenuHomePhabricator

Recent Posts

Creating a vue.js based skin with server side rendering

Written by Jdlrobson on Thu, May 27, 9:54 PM in Leave it to the prose.

For WMF staff's inspiration week, I decided to take a step back from my work building out a new skin architecture and a redesign of Vector and put myself into the shoes of a skin developer to see if the changes my team had made life easier. As a secondary objective, I was interested in how a MediaWiki skin could be written in Vue.js and what the challenges were to get there.

Read more...

Most Interesting Bugs

What makes a bug interesting? Any bug, by definition, has an element of a surprise (otherwise, it wouldn't be a bug). But not all bugs are equal in their ability to be surprising. Some bugs do stand out, presenting two essential elements of a surprise - unexpectedness and/or unusual manifestation. Based on my own classification criteria, I define a bug to be the most interesting if it is either (or both)
(1) difficult to find
(2) has a quite unexpected (mostly disruptive) impact

Read more...

macOS vs Ubuntu Linux

I do most of my work on a 27-inch iMac from 2012. It's a good desktop machine.

Read more...

Production Excellence #31: April 2021

Written by Krinkle on May 13 2021, 3:49 AM in Doing the needful.

How’d we do in our strive for operational excellence last month? Read on to find out!

Read more...

Improvements to Email QA

INTRO
When running QA on emails, the most important things to check are the dynamic content populating correctly for different user types, and ensuring there are no layout issues. Especially in an increasingly mobile world, it's important to review how an email will be displayed on a large variety of devices at once.

Read more...

Breakpoint at BrowserStack conferences (2020-2021) - Part 2 Focus on Exploratory testing

Since I was impressed with the depth of presentations at Breakpoint conference (at Browserstack) in July 2021 - see my post Breakpoint at BrowserStack conferences (2020-2021) - reflections and thoughts: Part 1 - Focus on Automation, it was really exciting to see that the next conference (March 2021) would be focusing on the intriguing topic of exploratory testing. The the presentations titles (here is the list of all presentations) looked equally exciting, for example

  • "Manual testing is not dead...just the definition"
  • "Whole team holistic quality"
  • "Contemporary Exploratory Testing"
  • "Building a testing culture"
Read more...

Debug Selenium Tests: logLevel

This tip works if you're targeting:

Read more...

Production Excellence #30: March 2021

Written by Krinkle on Apr 3 2021, 12:20 AM in Doing the needful.

How’d we do in our strive for operational excellence last month? Read on to find out!

Read more...

Breakpoint at BrowserStack conferences (2020-2021) - Part 1 Focus on Automation

“Improving daily work is even more important than doing daily work.”
― Gene Kim, The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win

Read more...

Tracking memory issue in a Java application

Written by hashar on Mar 12 2021, 9:38 AM in Doing the needful.

One of the critical pieces of our infrastructure is Gerrit. It hosts most of our git repositories and is the primary code review interface. Gerrit is written in the Java programming language which runs in the Java Virtual Machine (JVM). For a couple years we have been struggling with memory issues which eventually led to an unresponsive service and unattended restarts. The symptoms were the usual ones: the application responses being slower and degrading until server side errors render the service unusable. Eventually the JVM terminates with:

Read more...

Production Excellence #29: February 2021

Written by Krinkle on Mar 6 2021, 1:03 AM in Doing the needful.

How’d we do in our strive for operational excellence last month? Read on to find out!

Read more...

Eventlogging journey

“I felt in need of a great pilgrimage, so I sat still for three days.” Hafiz

Read more...

Production Excellence #28: January 2021

Written by Krinkle on Feb 19 2021, 6:45 AM in Doing the needful.

How’d we do in our strive for operational excellence last month? Read on to find out!

Read more...

Production Excellence #27: December 2020

Written by Krinkle on Feb 4 2021, 5:46 AM in Doing the needful.

How’d we do in our strive for operational excellence last month? Read on to find out!

Read more...

Testing search in MediaSearch

The secret of getting ahead is getting started. The secret of getting started is breaking your complex overwhelming tasks into small manageable tasks, and then starting on the first one.
—Mark Twain

Read more...

Exempla Docent - Testing instrumentation on Special:Homepage (QA perspective)

Two previous posts - Exempla Docent Part 1 and Part 2 outlined QA approach to testing functionality of the Suggested edits (SE) module on Special:Homepage. Part 1 explored testing ORES model-articletopic logic implementation and Part 2 described testing user workflows.

Read more...

Struggle, the road to growth

It has been more than 3 weeks into my Outreachy internship with Wikimedia foundations. The internship started well and the project that I'm working on is about evaluating Microsoft playwright as a possible replacement to the current automation testing framework being used. Week one was mostly about setting up the Wikimedia core by forking and cloning the Wikimedia core repository from Github. In order to simplify continuous integration, we are using Github as our code hosting platform to evaluate playwright instead of using Gerrit. The setup involved the following steps;

  • Forking the Wikimedia repository
  • Cloning the repository, setting up and running it on my local machine
  • Connecting my forked with upstream
  • Configuring CI.
Read more...

Production Excellence #26: November 2020

Written by Krinkle on Dec 15 2020, 9:49 PM in Doing the needful.

How’d we do in our strive for operational excellence last month? Read on to find out!

Read more...

Runnable runbooks

Written by mmodell on Dec 11 2020, 11:51 PM in Doing the needful.

Recently there has been a small effort on the Release-Engineering-Team to encode some of our institutional knowledge as runbooks linked from a page in the team's wiki space.

Read more...

To dream a dream. My Outreachy Journey

The year 2020 has been a year of massive change in the entire world, there are mixed feelings of loss, confusion among others, but all in all, there is always hope that keeps us moving forward. I must say that being accepted as an Outreachy intern has been that ray of light at the end of the tunnel that I needed to end the year and begin the new year. Outreachy is a paid, remote internship program with the goal to support people from groups underrepresented in tech. Starting my career in the field of software engineering has been a journey of hard work, persistence, and seizing every opportunity since where I come from such opportunities are rare and the support for women's engagement in technology is quite low.

Read more...

Exempla Docent - testing UI for Suggested edits module

In Part 1 of Exempla Docent for QA practices, some approaches to testing ORES model articletopic were explored. This post, as Part 2, will present an overview on testing Suggested edits module (SE) - the UI that presents the ORES articletopic logic to users (more info on Newcomers tasks on Special:Homepage).

Read more...

Engineering Productivity Virtual Offsite October 2020

October 26-29 2020 was my team's second virtual offsite. We've had many offsites, but the first virtual one was in May 2020. The structure of this offsite was similar to the one in May. About four hours of sessions every day, from Monday to Thursday.

Read more...

Production Excellence #25: October 2020

Written by Krinkle on Nov 24 2020, 5:13 AM in Doing the needful.

How’d we do in our strive for operational excellence last month? Read on to find out!

Read more...

Spin up a basic local Phabricator instance with Docker

If you want to experiment with Phabricator and/or the Phabricator APIs, it can be convenient to have a local instance to play with.

Read more...

Exempla Docent - testing ORES 'articletopic' model

ORES provides machine learning as a service for Wikimedia projects. The ORES model articletopic was used for the Growth team project - Suggested edits for newcomers on Special: Homepage.

Read more...

Production Excellence #24: September 2020

Written by Krinkle on Oct 23 2020, 11:51 PM in Doing the needful.

How’d we do in our strive for operational excellence last month? Read on to find out!

Read more...

Visual Studio Code + Neovim

I've started using Vim in 2014. I've read a few books, wrote a few articles and gave a few talks on Vim. I really like editing text with Vim, but I was never happy with it's file management, extensions, things like that.

Read more...

Google Summer of Code, June-August 2020

June and July were pretty busy. I was on vacation the majority of August. Interns and other mentors were busy even then. For more introduction, read my post Blog Post: Google Summer of Code, February-May 2020.

Read more...

CI now updates your deployment-charts

Written by jeena on Sep 24 2020, 5:34 PM in Doing the needful.

If you're making changes to a service that is deployed to Kubernetes, it sure is annoying to have to update the helm deployment-chart values with the newest image version before you deploy. At least, that's how I felt when developing on our dockerfile-generating service, blubber.

Read more...

Google Summer of Code, February-May 2020

In February 2020 I've noticed an e-mail that Wikimedia is participating in Google-Summer-of-Code. Unfortunately, I've ignored the e-mail and soon forgot about it.

Read more...

Production Excellence #23: July & August 2020

Written by Krinkle on Sep 23 2020, 6:10 PM in Doing the needful.

How’d we do in our strive for operational excellence last month? Read on to find out!

Read more...

RPKI Origin Validation

Written by ayounsi on Aug 10 2020, 1:02 PM in Routing knowledge.

Since the late 90s, databases named Internet Routing Registries (IRR) have been trying to fulfill that (single) source of truth role. Unfortunately, they are subject to a lot of issues: fragmentation (many existing databases, not all equally well-maintained), security (some databases allow anyone to “claim” a prefix) and complexity (for the network operators). They also contain a lot of inaccurate data that have accumulated over time.

Read more...

Internal anycast

Written by ayounsi on Aug 7 2020, 9:48 AM in Routing knowledge.

This project brought two major changes to our infrastructure. Firstly, servers that used to be fronted by LVS for load balancing are now peering directly with our routers. Secondly, we have started using IP anycast for a highly critical service: recursive DNS.

Read more...

Phabricator Search Backend Changes

Written by mmodell on Jul 29 2020, 5:45 PM in Phabricating Phabricator.

Phabricator upstream has implemented a search engine that does not depend on an external full-text index service. It's been the default in Phabricator for quite some time, however, we have been using the ElasticSearch engine for a few years now due to previous issues with the old engine. Specifically, the old phabricator fulltext engine depended on MySQL's built-in fulltext index functionality. Unfortunately, the fulltext engine in MySQL had inconsistent performance and often returned low quality search results.

Read more...

All code is built

Written by Niedzielski on Jul 28 2020, 1:27 PM in Leave it to the prose.

HEADER CAPTION: The head of the Statue of Liberty on exhibit at the Paris World's Fair, 1878. The statue was built in France ahead of time, shipped overseas in crates, and then assembled in New York. Image by Albert Fernique / public domain.

Read more...

Production Excellence #22: June 2020

Written by Krinkle on Jul 23 2020, 3:25 AM in Doing the needful.

How’d we do in our strive for operational excellence last month? Read on to find out!

Read more...

Fanboying Cypress

Software development is pretty agile in its nature in that things normally tend to move pretty quickly. However, the faster you move, the more things break. As a codebase grows in size, its pieces become more and more complex, with every line adding a potential bug. In Wikimedia Foundation, we keep a handle on this through rigorous amounts of testing. Manual testing requires a lot of effort especially when you have a large core repository with a plethora of plugins and extensions that need to be tested. One of the hot frameworks on the scene is Cypress, a complete end to end testing solution.

Read more...

GSoCpedia: The journey so far

“Imagine a world in which every single human being can freely share in the sum of all knowledge.”
~ Wikimedia Foundation

Read more...

Addressing bug from 2019: information about private, security-related Phab tickets

Written by Dsharpe on Jul 6 2020, 5:04 PM in Wikimedia Security Team.

Today, we are writing to share the discovery and squashing of a bug that occurred earlier this year. This particular bug was also one of the rare instances in which we kept a Phabricator ticket private to address a security issue. To help address questions about when and why we make a security-related ticket private, we’re also sharing some insight into what happens when a private ticket about a security issue is closed.

Read more...

Faster source code fetches thanks to git protocol version 2

Written by hashar on Jul 6 2020, 10:57 AM in Doing the needful.

In 2015 I noticed git fetches from our most active repositories to be unreasonably slow, sometimes up to a minute which hindered fast development and collaboration. You can read some of the debugging details I have conducted at the time on T103990. Gerrit upstream was aware of the issue and a workaround was presented though we never went to implement it.

Read more...

Production Excellence #21: May 2020

Written by Krinkle on Jun 24 2020, 8:00 PM in Doing the needful.

How’d we do in our strive for operational excellence last month? Read on to find out!

Read more...

Celebrating 600,000 commits for Wikimedia

Written by Jdforrester-WMF on May 29 2020, 10:47 PM in Doing the needful.

Earlier today, the 600,000th commit was pushed to Wikimedia's Gerrit server. We thought we'd take this moment to reflect on the developer services we offer and our community of developers, be they Wikimedia staff, third party workers, or volunteers.

Read more...

Production Excellence #20: April 2020

Written by Krinkle on May 14 2020, 4:10 PM in Doing the needful.

How are we doing on that strive for operational excellence during these unprecedented times?

Read more...

Moving Milestones

Written by mmodell on May 1 2020, 10:39 AM in Phabricating Phabricator.

This week a long-standing "bug" has been fixed in Phabricator.

Read more...

Production Excellence #19: February 2020

Written by Krinkle on Mar 24 2020, 9:40 PM in Doing the needful.

How’d we do in our strive for operational excellence last month? Read on to find out!

Read more...

Coming to Terms with Change

Written by Ladsgroup on Mar 23 2020, 3:54 PM in The Sum of All Data.

We are dropping the wb_terms table, you might ask why we are doing it and why it’s such an important endeavour.

Read more...

The best documentation automation can buy

Written by Niedzielski on Mar 22 2020, 2:24 PM in Leave it to the prose.

HEADER CAPTION: Screenshot from Wikimedia's famous Visual Editor. The typo "documenation" has a red squiggly line under it indicating the spell checker has automatically detected a spelling error by the author.

Read more...

Production Excellence #18: January 2020

Written by Krinkle on Feb 28 2020, 7:39 PM in Doing the needful.

How’d we do in our strive for operational excellence last month? Read on to find out!

Read more...

New names for everyone!

Written by Andrew on Feb 18 2020, 9:14 PM in Clouds & Unicorns.

The Cloud Services team is in the process of updating and standardizing the use of DNS names throughout Cloud VPS projects and infrastructure, including the Toolforge project. A lot of this has to do with reducing our reliance on the badly-overloaded term 'Labs' in favor of the 'Cloud' naming scheme. The whole story can be found on this Wikitech proposal page. These changes will be trickling out over the coming weeks or months, but one change you might notice already.

Read more...

Parsoid in PHP, or There and Back Again

Written by cscott on Feb 12 2020, 3:56 PM in Wikitext & Parsing.

Authors: S.Subramanya Sastry, C.Scott Ananian; Parsing Team; Wikimedia Foundation

Read more...

Changes to Security Team Workflow

Written by JBennett on Feb 3 2020, 8:07 PM in Wikimedia Security Team.

In an effort to create a repeatable, streamlined process for consumption of security services the Security Team has been working on changes and improvements to our workflows. Much of this effort is an attempt to consolidate work intake for our team in order to more effectively communicate status, priority and scheduling. This is step 1 and we expect future changes as our tooling, capabilities and processes mature.

Read more...

Why does building a skin require PHP knowledge?

Written by Jdlrobson on Feb 3 2020, 6:37 AM in Leave it to the prose.

One of my longstanding pet peeves is that skin development for MediaWiki is so hard. I propose a radical change to how skins are installed and ask for feedback.

Read more...

14 January 2020 security incident on Phabricator

Written by Dsharpe on Jan 16 2020, 10:20 PM in Wikimedia Security Team.

On 14 January 2020, staff at the Wikimedia Foundation discovered that a data file exported from the Wikimedia Phabricator installation, our engineering task and ticket tracking system, had been made publicly available. The file was leaked accidentally; there was no intrusion. We have no evidence that it was ever viewed or accessed. The Foundation's Security team immediately began investigating the incident and removing the related files. The data dump included limited non-public information such as private tickets, login access tokens, and the second factor of the two-factor authentication keys for Phabricator accounts. Passwords and full login information for Phabricator were not affected -- that information is stored in another, unaffected system.

Read more...

Production Excellence #17: December 2019

Written by Krinkle on Jan 10 2020, 2:51 AM in Doing the needful.

How’d we do in our strive for operational excellence in November and December? Read on to find out!

Read more...

The journey to Prometheus 2

Written by fgiunchedi on Dec 19 2019, 2:18 PM in Observing the observable.

In July 2016 the SRE team at Wikimedia Foundation began investigating Prometheus as a modern metrics framework. The experience has been very positive and has provided benefits both for technical debt elimination—such as deprecating Ganglia and Diamond—and adding support for newer technologies like Kubernetes.

Read more...

WikimediaDebug v2 is here!

Written by Krinkle on Dec 16 2019, 6:48 PM in The Speed of Thought.

WikimediaDebug is a set of tools for debugging and profiling MediaWiki web requests in a production environment. WikimediaDebug can be used through the accompanying browser extension, or from the command-line.

Read more...

Phabricator Status Update

Written by mmodell on Dec 9 2019, 9:00 PM in Phabricating Phabricator.

You may have noticed that Phabricator's real-time notification service ("Aphlict") is currently disabled. This means that you will not see real-time notification popups in Phabricator and workboard live-updates aren't happening.

Read more...

Production Excellence #16: October 2019

Written by Krinkle on Nov 8 2019, 5:57 AM in Doing the needful.

How’d we do in our strive for operational excellence last month? Read on to find out!

Read more...

Production Excellence #15: September 2019

Written by Krinkle on Oct 24 2019, 11:25 PM in Doing the needful.

How’d we do in our strive for operational excellence last month? Read on to find out!

Read more...

Integrating code coverage metrics with your development workflow

Written by kostajh on Oct 9 2019, 10:04 AM in Doing the needful.

In Changes and improvements to PHPUnit testing in MediaWiki, I wrote about efforts to help speed up PHPUnit code coverage generation for local development.[0] While this improves code coverage generation time for local development, it could be better.

Read more...

Introducing Phatality

Written by mmodell on Oct 7 2019, 12:36 AM in Doing the needful.

This past week marks the release of a little tool that I've been working on for a while. In fact, it's something I've wanted to build for more than a year. But before I tell you about the solution, I need to describe the problem that I set out to solve.

Read more...

Production Excellence #14: August 2019

Written by Krinkle on Oct 3 2019, 4:27 AM in Doing the needful.

How’d we do in our strive for operational excellence in August? Read on to find out!

Read more...

Wikipedia's JavaScript initialisation on a budget

Written by Krinkle on Sep 18 2019, 10:46 PM in The Speed of Thought.

This week saw the conclusion of a project that I've been shepherding on and off since September of last year. The goal was for the initialisation of our asynchronous JavaScript pipeline (at the time, 36 kilobytes in size) to fit within a budget of 28 KB – the size of two 14 KB bursts of Internet packets.

Read more...

Cloud-vps Puppetmasters Moved to VMs, thanks to Krenair

Written by Andrew on Sep 18 2019, 9:54 PM in Clouds & Unicorns.

Last week, we completed a piece of long-neglected work relating to Puppet, the tool that manages the configuration of every virtual machine in our cloud. Historically, each VM has received its configuration from a physical, production server (the 'puppetmaster'). This meant that there was a constant chatter of traffic back and forth between each VM and unrelated networks and hardware sitting in Wikimedia production. Now, the puppetmasters are located on VMs, so all of that chatter is internal to Cloud Services.

Read more...

Production Excellence #13: July 2019

Written by Krinkle on Aug 30 2019, 8:08 PM in Doing the needful.

How’re we doing on that strive for operational excellence? Read this first anniversary edition to find out!

Read more...

Production Excellence #12: June 2019

Written by Krinkle on Jul 31 2019, 6:44 PM in Doing the needful.

How’d we do in our strive for operational excellence last month? Read on to find out!

Read more...

Phabricator Features, July, 2019 Edition

Written by mmodell on Jul 26 2019, 9:23 AM in Phabricating Phabricator.

This will be a brief introduction to this new feature which appeared recently on Phabricator workboards.

Read more...

Changes and improvements to PHPUnit testing in MediaWiki

Written by kostajh on Jul 16 2019, 4:13 AM in Doing the needful.

Building off the work done at the Prague Hackathon (T216260), we're happy to announce some significant changes and improvements to the PHP testing tools included with MediaWiki.

Read more...

Production Excellence #11: May 2019

Written by Krinkle on Jul 1 2019, 6:56 PM in Doing the needful.

How’d we do in our strive for operational excellence last month? Read on to find out!

Read more...

Tracking down slow event handlers with Event Timing

Written by Gilles on Jun 19 2019, 3:17 PM in The Speed of Thought.

We're taking part in the ongoing Event Timing Chrome origin trial, in order to experiment with that API early and give feedback to its designers. The goal of this upcoming API is to surface slow events. This is an area of web performance that hasn't gotten a lot of attention before, but one that can be very frustrating for users. Essentially, when slow events occur, users are trying to interact with the page and it's being unresponsive. Not a desirable user experience.

Read more...

Performance perception: correlation to RUM metrics

Written by Gilles on Jun 17 2019, 11:56 AM in The Speed of Thought.

When we set out to ask Wikipedia visitors their opinion of page load performance, our main hope was to answer an age-old question: which RUM metric matters the most to users? And more interestingly, which ones matter the most to our users on our content.

Read more...

Performance perception: the effect of late-loading banners

Written by Gilles on Jun 13 2019, 2:12 PM in The Speed of Thought.

Unlike most websites, Wikipedia and its sister projects are ad-free. This is actually one of the reasons why our performance is so good. We don't have to deal with slow and invasive third-parties.

Read more...

Production Excellence #10: April 2019

Written by Krinkle on May 31 2019, 7:21 PM in Doing the needful.

How’d we do in our strive for operational excellence last month? Read on to find out!

Read more...

Performance perception: how satisfied are Wikipedia users?

Written by Gilles on May 29 2019, 5:17 PM in The Speed of Thought.

We've recently published research on performance perception that we did last year. The micro survey used in this study is still running on multiple Wikipedia languages and gives us insights into perceived performance.

Read more...

Introducing the codehealth pipeline beta

Written by kostajh on May 14 2019, 8:29 PM in Doing the needful.

After many months of discussion, work and consultation across teams and departments[0], and with much gratitude and appreciation to the hard work and patience of @thcipriani and @hashar, the Code-Health-Metrics group is pleased to announce the introduction of the code health pipeline. The pipeline is currently in beta and enabled for GrowthExperiments, soon to be followed by Notifications, PageCuration, and StructuredDiscussions. (If you'd like to enable the pipeline for an extension you maintain or contribute to, please reach out to us via the comments on this post.)

Read more...

Nova-network is gone!

Written by Andrew on May 2 2019, 9:05 PM in Clouds & Unicorns.

A couple of week ago we finally moved the last lingering VMs in our OpenStack platform from the nova-network region to the Neutron region (Blog Post: Neutron is here!). The bulk of the work had been done a month earlier, so the final nails in nova-network's coffin felt a bit anticlimactic -- nevertheless, this is a big step that represents a huge amount of work on the part of both staff and volunteers.

Read more...

Production Excellence #9: March 2019

Written by Krinkle on Apr 21 2019, 6:51 PM in Doing the needful.

How’d we do in our strive for operational excellence last month? Read on to find out!

Read more...

Evaluating Element Timing for Images

Written by Peter on Apr 10 2019, 8:24 AM in The Speed of Thought.

In the search for a better user experience metric, we have tried out the upcoming Element Timing for Images API in Chrome.

Read more...

Quibble hibernated, it is time to flourish

Written by hashar on Mar 28 2019, 11:48 AM in Doing the needful.

Writing blog is neither my job nor something that I enjoy, I am thus late in the Quibble updates. The last one Blog Post: Quibble in summer has been written in September 2018 and I forgot to publish it until now. You might want to read it first to get a glance about some nice changes that got implemented last summer.

Read more...

Quibble in summer

Written by hashar on Mar 28 2019, 10:42 AM in Doing the needful.

Note: this post has been published on 03/28 but has been originally written in September 2018 after Quibble 0.0.26 and never got published.

Read more...

Switching production traffic to Apache Traffic Server

Written by ema on Mar 28 2019, 9:21 AM in The Traffic Blog.

The plan to replace Varnish as the on-disk HTTP cache component of our CDN with Apache Traffic Server is starting to take shape.

Read more...

Autonomous Systems performance report

Written by Gilles on Mar 27 2019, 11:07 AM in The Speed of Thought.

Today we're publishing our first report of the performance experienced by visitors of Wikimedia websites, focused on the Autonomous Systems visitors are connecting from.

Read more...

CI working group report, with recommendations of new tools to try

Written by LarsWirzenius on Mar 25 2019, 6:29 PM in Doing the needful.

The working group to consider future CI tooling for Wikimedia has finished and produced a report. The report is at https://www.mediawiki.org/wiki/Wikimedia_Release_Engineering_Team/CI_Futures_WG/Report and the short summary is that the release engineering team should do prototype implementations of Argo, GitLab CI/CD, and Zuul v3.

Read more...

Production Excellence #8: February 2019

Written by Krinkle on Mar 21 2019, 7:11 PM in Doing the needful.

How’d we do in our strive for operational excellence? Read on to find out!

Read more...

Help my CI job fails with exit status -11

Written by hashar on Mar 21 2019, 9:52 AM in Doing the needful.

For a few weeks, a CI job had PHPUnit tests abruptly ending with:

Read more...

Migrating code from MediaWiki's ResourceLoader to Webpack

Written by Jdlrobson on Mar 13 2019, 3:15 PM in Leave it to the prose.

The lack of tooling or support for tooling has been causing problems in complicated code bases like the codebase for our mobile site, so we carved out a proposal to create a bridge from our existing codebase to a more modern one using Webpack. I'll talk about what we did and why.

Read more...

Work progresses on CI tool evaluation

Written by LarsWirzenius on Mar 8 2019, 4:59 PM in Doing the needful.

The working group to consider future tooling for continuous integration is making progress (see previous blog post J148 for more information). We're looking at and evaluating alternatives and learning of new needs within WMF.

Read more...

Choosing tools for continuous integration

Written by LarsWirzenius on Feb 28 2019, 6:27 PM in Doing the needful.

The Release Engineering team has started a working group to discuss and consider our future continuous integration tooling. Please help!

Read more...

Projects, Forms and Subtypes oh my!

Written by mmodell on Feb 28 2019, 2:24 AM in Phabricating Phabricator.

Significant new functionality just landed in the wmf/stable branch of rPHAB Phabricator which resolves some minor headaches we've been living with for quite some time.

Read more...

Phab Phebruary

Written by mmodell on Feb 22 2019, 7:23 PM in Phabricating Phabricator.

After many months with only a few minor updates deployed to the wmf/stable branch of Phabricator, we were long over-due for a major update. With All-hands 2019 behind us I was finally able to find the time to merge and deploy a huge batch of upstream changes.

Read more...

Minimal MediaWiki for frontend engineers

Written by Jdlrobson on Feb 21 2019, 7:07 PM in Leave it to the prose.

I use OSX. Vagrant has not been kind to me, but I'm hopeful that Docker will make development a lot easier for me in future.
Until then, I use MAMP which provides a pretty easy LAMP setup. I wanted to share it with other frontend engineers as this minimal setup works well for me - it's fast, it minimises the extensions I need to update and most importantly brings me closer to problems with frontend end-users are experiencing.

Read more...

Debugging production with X-Wikimedia-Debug

Written by kostajh on Feb 20 2019, 4:15 PM in The Speed of Thought.

In February 2018, a user reported that some topics created by users on Flow discussion boards were not appearing in the Recent Changes feeds, including EventStreams and the IRC-RC feed. Various automated patrol systems rely on EventStreams, so the bug meant a number of edits bypassed those systems on Flow-enabled wikis.

Read more...

Perf Matters at Wikipedia in 2015

Written by Krinkle on Feb 14 2019, 4:05 PM in The Speed of Thought.

This year we achieved another milestone in our multi-year effort to prepare Wikipedia for serving traffic from multiple data centres.

Read more...

Production Excellence #7: January 2019

Written by Krinkle on Feb 13 2019, 3:53 AM in Doing the needful.

How’d we do in our strive for operational excellence last month? Read on to find out!

Read more...

Production Excellence #6: December 2018

Written by Krinkle on Jan 22 2019, 2:54 AM in Doing the needful.

How’d we do in our strive for operational excellence last month? Read on to find out!

Read more...

Gerrit now automatically adds reviewers

Written by hashar on Jan 17 2019, 4:53 PM in Doing the needful.
WARNING: 20210305 the reviewers by blame Gerrit plugin got disabled after it got announced by this blog post. It turns out the author of change is not necessarily an adequate reviewer suggestion in our context and some were being added to review for a whole lot code than they would expect. The post still have some worthy information as to how one can find reviewers.
Read more...