Theme upload survey results & next steps

As most of you should know by now, for the last six weeks we’ve had a survey running on the themes upload page to get feedback on how theme authors would like to upload updates to their themes in the future.

The primary purpose of the survey was to determine what the preferred method of uploading themes would be, as the ZIP upload is often touted as a pain point in the entire process.

Thank you to the 256 people who submitted feedback. I’m going to summarise the results here for transparency and the next steps the MetaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. team are going to take.

As can be seen below, the preferred method is to continue with ZIP Uploads, followed by GitGit Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Git is easy to learn and has a tiny footprint with lightning fast performance. Most modern plugin and theme development is being done with this version control system. https://git-scm.com/./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/ integration, Direct SVNSVN Apache Subversion (often abbreviated SVN, after its command name svn) is a software versioning and revision control system. Software developers use Subversion to maintain current and historical versions of files such as source code, web pages, and documentation. Its goal is to be a mostly compatible successor to the widely used Concurrent Versions System (CVS). WordPress core and the wordpress.org released code are all centrally managed through SVN. https://subversion.apache.org/. access, and finally “anything other than ZIP, SVN, and GIT”.

Reading the free-form feedback, there’s a two main things that caught my attention:

  1. Not everyone uses GitHub (or even a VCS), and didn’t want to see that be the only option.
  2. Some who preferred GitHub, suggested that SVN was the second best option.

It’s clear that for some authors ZIP uploads are preferable, There are no plans to remove this. But it’s also clear that many others wish to use a version-control system of some form to automate releasing updates – to remove the need to create a ZIP and upload it manually.

Next Steps

Here’s the suggested immediate plans forward:

  1. Enable theme updates to be submitted via SVN. #5899-meta
  2. Remove TracTrac Trac is the place where contributors create issues for bugs or feature requests much like GitHub.https://core.trac.wordpress.org/. tickets for theme updates.
  3. Create/Encourage the creation of a GitHub action, to automate releasing from GitHub to 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/.

I’ll create Trac tickets to track these once everyone has had a chance to review this post, and given me a chance to clarify any points.

Enabling access to SVN

Enabling access is straight forward, but processing updates from SVN is not as easy. We’ve determined that the simplest way to make this happen is to require some very specific rules be followed:

  1. Updates must be stored in a `/THEME/VERSION/` structure similar to the existing use.
  2. Once an update is committed, it cannot be changed or altered in any way – even just to fix a typo.
  3. Versions must be in a standardised format, and must be higher than an existing version.

Themes.svn would be used as a “deployment destination” rather than as the primary location of development for a theme. One commit per version. No Trunk folder. etc.

Remove Trac tickets for updates

By disabling the trac ticket creation for updates to existing live themes, we can reduce the noise in Trac and focus it on being Theme Reviews, while at the same time simplifying the process for importing from SVN.

Git/GitHub integration

The WordPress.org 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 directory doesn’t have any Git/GitHub integration, but there is a 3rd-party supported action which allows for Plugin authors to have GitHub tags/releases be pushed to the WordPress.org plugins SVN repository automatically. Git-svn is also used by some here to keep everything within their own Git repository.

By enabling SVN access for themes, we’re opening the possibility of a similar action to be created, and leaving the door open for a future iteration where GitHub is built directly into the Plugin & Theme directories.

Thoughts? Concerns?

#5899-meta