Chat recap: Release Model Working Group – January 29, 2020

Today the kickoff meeting for the group happened at in the CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. channel, based on this agenda. You can read the whole chat in Slack.

This recap is not in the order things were said, but in the order that (IMHO of course 🙂 ) makes more sense to see the project as a whole.

The Situation Now

As provided by @chanthaboune (thanks!)

  • We have some handbook documentation that has most of the steps plus some out of date things
  • We are lacking full documentation of the interior processes (knowing that some are irresponsible to publish in their entirety).
  • We are also lacking which steps are
    1. out of date
    2. contingent on other steps
    3. should be tied to particular timeframes
    4. automatable

Short introduction of the scope of the group

The increase of the cadence is not a foregone conclusion. The working group is here to research and document.

By documenting the existing release process, the group can:

  • Evaluate the technical changes needed to speed up the release process
  • Evaluate if those changes are doable with the existing resources and tools

The end result will be a few factual, non-opinionated documents which outline the above.

So! What is the group actually working on?

This point sparked a lively conversation! After a bit of back and forth, the group decided to adopt an existing document, put together by @chanthaboune over two years (thanks, again!): it divides the release into phases that group types of work needed.

Some of the attendees have already expresses interest in some specific areas:

  • @aaroncampbell is interested in helping document out the jobs of, and needs/struggles of, the security team.
  • @francina and @audrasjb are interested in the pre-kickoff phase:
    • Talk to leads, committers, and component maintainers.
    • Set a scope
    • Set a schedule
    • Etc…
  • @pandjarov (who wasn’t present, so @francina represented his commitment) is ready to work on E2E tests. These have been identified as a must-have even if the release model doesn’t change.
  • @amykamala is available for general project management and help with facilitating/coordinating E2E testing improvements with the hosting team + document.
  • @clorith can track down all the various teams touched by a release.
  • @marybaum is interested in the human side: making sure we have enough people at any stage and make sure there are backups.

Action item: go over the Google Spreadsheet, see if there is a topic that you are familiar with and it sparks joy. If yes, please see below and start working on it based on the workflow suggested.

Tools

We will be using GitHubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/.

A repo has been created and we can use the Project feature to keep track of the process.

The workflow will be (at least for now, so we can test it):

  1. Create an issue for the topic researched.
  2. All comments, research, findings will be added as comments. This will help keep the discussion focused.
  3. Once the research is ready, recap and move it to a document

Proposed meeting times

  • 1st and 3rd Wednesday, at 20:00 UTC (alternating with the New Contributors chat and back to back with Dev Chat)
  • 1st and 3rd Wednesday, at 8:00 UTC for APAC

Action item: times to be confirmed by group members.

All right, that’s a lot of info: what is next?

  1. Please confirm in the comments that the proposed meeting times are ok and if you are available to facilitate the chats.
  2. @francina – I will create the first issue on GitHub as an example. Done.
  3. Everyone interested: adopt a topic and get working 🙂 PingPing The act of sending a very small amount of data to an end point. Ping is used in computer science to illicit a response from a target server to test it’s connection. Ping is also a term used by Slack users to @ someone or send them a direct message (DM). Users might say something along the lines of “Ping me when the meeting starts.” me if you need to be added to the repo. Use the first issue as an example if you wish.

Thank you for making WordPress, now let’s get working!

#release-process

Agenda: Release Model Working Group – January 29, 2020

Here is the agenda for the the kickoff meeting happening later today: Wednesday, January 29, 2020, at 07:00 PM UTC.

More information about the working group in the previous post.

  1. Short introduction of the scope of the group
  2. Self-assign areas of interest
  3. Decide on tools to track process
  4. Decide on times of meetings

#release-process

Release Model Working Group – Kickoff, January 29, 2020

Thank you for your patience, it took longer than I predicted to kick off this working group, but here we are!

On Wednesday, January 29th let’s have the first meeting for the Release Model Working Group at 19:00 UTC. It’s the same time slot as the New Contributors Meeting and we can alternate meetings with them.

The problem we are trying to solve

Many fixes and enhancements are made continuously in WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress., the GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. editor, and third-party libraries, but everyone has to wait up to four months to see these due to the cycle of three or four major releases per year. This has a negative impact on both end-users and developers.

What will the Release Model Working Group do?

This working group will spend some time during the 5.4 release cycle to:

  • Evaluate the technical changes needed to speed up the release process
  • Evaluate if those changes are doable with the existing resources and tools

The group will also document the existing release process in order to achieve the above.

The end result will be a few factual, non-opinionated documents which outline the above.

Why do we need a working group?

A working group is a bit of a fancy name for a group of people who come together to spend time focused on a particular problem – in this case, the issues caused by the current release cadence – and identify potential solutions and their feasibility.

We need this because increasing the rate at which new versions of WordPress are released has a big impact not only on end-users but on those involved in the release.

When

A meeting can be held in the #core SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel every two weeks, alternating with the New Contributors chat, and it will be mostly a status report so everyone is aware of what the findings are so far, and what everyone is doing.

How will the group work?

The group is self-organising based on experience, skills, and interest. Team members should commit to one of the above-mentioned areas.

Which approach to use for the research and which tool to use for collecting the results has to be determined: please leave your comments below, so by next Thursday we will have a few ideas to pick from.

I can take on the role of facilitator, with main tasks being:

  • Pinging people to remind them of their commitment and deadlines 😉
  • Remove blockers if necessary
  • Check overall progress

Who is the team made of

Many people raised their hands in the call for volunteers post. Thank you for your enthusiasm and generosity!

I am spending the next few days reaching out to each one of you to see how your experience and expectations, together with the capability of being self-organised, aligns with the group.

The chats will be public, so everyone can see what is being discussed.

Initial research: The different aspects of a release

I took some time to explore all the aspects involved in releasing a new version of WordPress and divided them into macro areas. The list is not exhaustive but a starting point. At this point it’s not necessary to go too granular, that’s what the working group is for.

This list should give the working group a starting point of areas to focus on.

Stages of the release cycle

  • Alpha
  • BetaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process.
  • Release Candidaterelease candidate One of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta).
  • General release

Issue tracking

  • Bug reporting
  • Bug gardening
  • Code writing
  • Testing
  • Committing

Planning and coordinating

  • Scoping the release
  • Putting together a release team
  • Scrubs scheduling
  • Collecting feedback and status reports from everyone involved

Communication of the release

  • Blogblog (versus network, site) posts in /news for each stage
  • About page
  • Dev notesdev note Each important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include a description of the change, the decision that led to this change, and a description of how developers are supposed to work with that change. Dev notes are published on Make/Core blog during the beta phase of WordPress release cycle. Publishing dev notes is particularly important when plugin/theme authors and WordPress developers need to be aware of those changes.In general, all dev notes are compiled into a Field Guide at the beginning of the release candidate phase.
  • Field guideField guide The field guide is a type of blogpost published on Make/Core during the release candidate phase of the WordPress release cycle. The field guide generally lists all the dev notes published during the beta cycle. This guide is linked in the about page of the corresponding version of WordPress, in the release post and in the HelpHub version page.
  • Bug scrubs (schedule and hosting them)
  • Dev chats (agenda and hosting them)

The people involved in releasing

  • Coordinator
  • Mission control
  • Core committers
  • Security team
  • Systems

Thank you for making WordPress!

#release-process

Dev Chat summary: January 8, 2020

The chat was facilitated by @francina on this agenda.

Full meeting transcript on Slack

Upcoming Release – WordPress 5.4

@francina reminded the main feature of 2020 will be full site editing. All component maintainers received a pingPing The act of sending a very small amount of data to an end point. Ping is used in computer science to illicit a response from a target server to test it’s connection. Ping is also a term used by Slack users to @ someone or send them a direct message (DM). Users might say something along the lines of “Ping me when the meeting starts.” before Christmas to put together a scope for WordPress 5.4. An open call for tickets was also published on Make/CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. While @francina noted there were mostly bugfixes and not so many new features, @audrasjb raised ticketticket Created for both bug reports and feature development on the bug tracker. #48850 from the comments of this post. This ticket is related to automatic updates for plugins (with manual opt-in), which is one of the 9 projects for 2019-2020.

@azaozz noted that the media component team plan to continue with image post-processing. It looks like it will need couple of small UIUI User interface changes/enhancements.

@audrasjb added the accessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) team will probably focus on bugfixes on both GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ and Core for 5.4, and target the next major (5.5) for bigger new features.

Highlighted posts

@francina noted that a lot of volunteers signed up to the release model working group. @francina will write a recap post on Make/Core.

Worth noting @azaozz published a 5.3 release cycle post-mortem.

Components check-in

Comments: @imath is working on #35214. Feedback welcome.

Core privacy: @xkon said the privacy team won’t have any specific focuses for 5.4, only bugfixing & enhancements on existing parts. Some of them need backward compatibility review, especially #44038 and #44176. Both tickets have a patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. and are ready for further iterations if needed.

Media: @azaozz is experimenting with #44427. Seems a very worthwhile enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. for 5.4.

Open floor

In the agenda comments, @justinahinon pointed out some editing needed in the roadmap, and highlighted reactions of the community concerning handling of big media on WP 5.3. @azaozz noted most comments are about “missing” the original image in some way. The initial plan was to have a link to it in the user interface. It should be added in 5.4. Another enhancement for the UI would/may be to show when an image is missing some of the sub-sizes and have a way to create them. There are plugins that handle this, but may be time to have it in core. There are couple of pre-existing edge-cases that need fixing too. Most notably increase of the file size for indexed PNGs when resized to smaller dimensions.

@timothyblynjacobs shared #47192 as a possible 5.4 feature. It’d bring a pretty often requested feature to Recovery Mode. It would need design and copy input as well as a security review from people familiar with the intricacies of the Users/Capabilities APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways..

#5-4, #dev-chat, #release-process, #summary

Continuing inline docs improvements adjacent to 4.8

As we’re now into the full throes of the 4.8 cycle, the uncertainty that comes with not releasing “until it’s ready” inevitably creates a lull in areas other than the three focuses. Areas like maintaining our inline documentation, which populates the official Code Reference.

In the past, the freshness of coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.’s inline documentation relied almost entirely on a regular, major releasemajor release A release, identified by the first two numbers (3.6), which is the focus of a full release cycle and feature development. WordPress uses decimaling count for major release versions, so 2.8, 2.9, 3.0, and 3.1 are sequential and comparable in scope. schedule. And due to a preference for keeping the number of changed files low, inclusion of docs fixes in minor releases has previously been a rare occurrence.

Until now.

I’ve spoken with @matt, and the decision has been made to go ahead and prioritize some inline docsinline docs (phpdoc, docblock, xref) fixes for inclusion in minor releases going forward.

As with any decision, there are certainly pros and cons. Here are some of them:

Pros:

  • Ability to continue our ongoing inline docs maintenance adjacent to the 4.8 major release
  • Ability to address some glaring docs errors that we’ve been fixing manually in the Code Reference
  • Continue forward progress in documenting core JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/.
  • Prioritize docs improvements for existing functionality in the three focus areas ahead of the 4.8 release, freeing up resources for documenting new functionality

Cons:

  • Number of changes and changed files in minor releases will increase (within reason)
  • All changes pushed to trunktrunk A directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision. will also need to be backported to the 4.7 (or current stable) branchbranch A directory in Subversion. WordPress uses branches to store the latest development code for each major release (3.9, 4.0, etc.). Branches are then updated with code for any minor releases of that branch. Sometimes, a major version of WordPress and its minor versions are collectively referred to as a "branch", such as "the 4.0 branch".

It’s worth noting that the reason the number of changed files has traditionally been kept low is to reduce the number of automatic update failures. The hope is that since we’ve been pushing automatic updates for 10 major versions now, reliability is less of a factor now than it has been previously.

It’s also worth noting that we shouldn’t expect a downtick in activity for core team resources focused on the three areas following this decision. As always, inline docs contributors will be focused on major release priorities before minor releaseMinor Release A set of releases or versions having the same minor version number may be collectively referred to as .x , for example version 5.2.x to refer to versions 5.2, 5.2.1, 5.2.3, and all other versions in the 5.2 (five dot two) branch of that software. Minor Releases often make improvements to existing features and functionality. ones.

This decision simply maintains the inline docs team’s ability to ensure the usefulness of core’s source documentation for the thousands of users and developers who rely on it every day.

#inline-docs, #minor-releases, #release-process

Release Process Checklists

The release process is complex and beyond one person. Releasing is an intricate dance that we haven’t been sufficiently capturing. Knowledge siloed in heads needs to be committed to public, institutional memory. The upcoming 4.5 release is an opportunity to capture every step of the dance so that we can iterate process, automate away lingering drudgery, and improve our cognitive net for the stressful task of releasing to 25%. I like using checklists in this cognitive net. They relieve anxiety, make process transparent, and help teams flow during stress. We already have a couple release checklists. We can build on those while adopting a little checklist culture in a manner empathetic to developers and flow. Pitch:

Checklist cool tricks

Checklists…

  • distribute power.
  • push power of decision making to the periphery.
  • provide a cognitive net.
  • make the minimum necessary steps explicit.
  • make sure simple steps are not missed.
  • make sure people talk.
  • capture and shape real flow.
  • inspire flow in emergencies and sustain it through the quotidian.
  • capture flow between teams.
  • encourage a shared culture around flow.
  • accessibly capture institutional memory in the context of flow.

Attributes of a good checklist

What makes a good checklist? Checklist shouldn’t be about just checking boxes. Instead of being a chore and an admonishing finger, checklists should fit and assist real flow. The Checklist Manifesto offers these suggestions. Ideally, checklists…

  • are not lengthy.
  • have clear, concise objectives.
  • define a clear pause point at which the checklist is supposed to be used.
  • have fewer than ten items per pause point.
  • fit the flow of the work.
  • continually update as living documents.

See this checklist for checklists and this example checklist for more.

Stuff to checklist

The major release checklist attempts to use pause points and follow the suggestions above. The major and minor release checklists are pretty rough and incomplete and overlap with each other. These and the things to keep in mind list need love and unification with help from developers who are in the release flow and handling controls on the release train.

about.php is…quite the process. It needs the oxygenating powers of a checklist.

Checklist Feature plugin merges.

Checklist bundled theme releases so stuff like this makes it into institutional memory.

BetaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. and RCrelease candidate One of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta). releases.

Plenty of other stuff. 🙂

Start by capturing. As we walk 4.5 release flows, capture.

Selected quotes from The Checklist Manifesto

Checklists supply a set of checks to ensure the stupid but critical stuff is not overlooked, and they supply another set of checks to ensure people talk and coordinate and accept responsibility while nonetheless being left the power to manage the nuances and unpredictabilities the best they know how.

Continue reading

#checklists, #pitch, #process, #release-process