WordPress Development Setup

Lately I’ve been seeing more mentions and questions about “CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. and 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/”, “In Core or in Gutenberg”, “Core vs. Gutenberg”, “Merging Gutenberg”, “On TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. or on 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/”, etc. I agree, the current WordPress development setup is somewhat complex. Two repositories, different release cycles, merging… This post won’t answer all questions, but hoping it will help to clarify some of them.

Core is Gutenberg and Gutenberg is Core

The code that is currently on WordPress.org Trac, and the code that is currently on GitHub are two parts of the same application. When a new version of WordPress is released, the code from both places is combined.

Why is Gutenberg being developed on GitHub or why is Core not being developed there?

Developing Gutenberg on GitHub makes it possible to test new features and iterate faster. Also, it was more convenient to start there. On the other hand Trac is hosted on WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ and has a mirror on GitHub. That mirror allows patches to be submitted as PRs, and code to be discussed inline (something like the best of both worlds). However the WordPress Tickets (a.k.a. Issues) are discussed on Trac and new releases are made from the build repository on WordPress.org.

Is Gutenberg a WordPress feature pluginFeature Plugin A plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins.?

No. Gutenberg is part of Core. “Gutenberg” is the code name of the WordPress 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. It has faster development cycle than the rest of WordPress, and is released as a pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party first.

By design the Gutenberg development cycle doesn’t align with the rest of WordPress’ development cycle. Merging code from both parts of the project before a WordPress release is not the same as merging a feature plugin. As Gutenberg is released as a plugin first, the code that is being added from GitHub to Trac has already been tested. Because of this the merges can happen later in the overall development cycle, usually during 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..

Seems there may be some room for improvement here as merges can happen faster. Every time the Gutenberg plugin is released the code probably can be merged, even when the rest of the WordPress code is in alpha. However for this the process of merging would have to be simplified and improved.

Thanks to @gziolo and @zieladam for the reviews and suggestions.