Code Revisions: Week 1

My initial post did get quite some feedback – not overall good. I expected the negative feedback. I did not take part in the discussion, but I think others did a nice job there (thanks Jen & Aaron). Also thanks to the developers who offered to give support when I might get stuck.

To make it short:  I already prepared myself for this project before the official coding phase started and could skip the initial “warm up phase”. At the moment I am ahead of the timeline.

This week mostly was on the connection between a file and a post (#284), the initial creation of a post when a file is edited for the first time (#285) and the updating of the corresponding post on every edit (#287). I also chatted with my mentors about the brought up security worries. We will definitely look into those and discuss them (and possible solutions) with lead developers – the code resulting from this project will not make it into coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. if it introduces security flaws!

The next week will be about viewing code revisionsRevisions The WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision.. This on the one hand includes a revisions list which needs to be added below the editors (#286) and on the other hand fixing possible problems with the revisions view on revisions.php (e.g. #289). I will take the negative feedback as a challenge and still hope to get code revisions into core. Till next week then.. Comments are open!

#code-revisions, #weekly-update

Weekly migration project update

Just a quick update today, as I’ve been a little sick and stayed offline for a few days.

Per my timeline, I worked on a light component last week that focuses on the URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org replacement part of a migrationMigration Moving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. operation (e.g. from http://www.example.com to https://wp.example.com/wordpress). Hints were taken from the way search-and-replace was implemented in WP-CLIWP-CLI WP-CLI is the Command Line Interface for WordPress, used to do administrative and development tasks in a programmatic way. The project page is http://wp-cli.org/ https://make.wordpress.org/cli/. My goal was to make this usable in whatever UIUI User interface implementation is built later. I also need to get a grasp on how unit tests are actually done with coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress., because dependencies on functions like get_option() make systematic testing more difficult without an accessible database and tables.

In terms of what to expand on with the importer, an important question that remains is just how much should be moved with the importer.

At the moment, despite its deficiencies, its scope can be simply delineated: it moves content. Just content. Not plugins, not site options, not themes. If the importer were expanded to use WordPress’s XML-RPC 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. to transfer more — to copy over site options, to install plugins based on what was previously active — then it’s much harder to draw the line at what the importer will and will not do. I think this is an important decision question that would benefit from some community input.

This week, I’ll be coding more actively. To be done: a usable UI that can be used to test the work done thus far, and a fork of the existing importer 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 in which I will make my improvements.

#migration-portability, #weekly-update

Post By Email weekly update

Last Friday, I met with Justin and George to talk through the details of the project proposal.  Here is the final version with revisionsRevisions The WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision. from that conversation.

I spent Monday and Tuesday moving apartments, so just a short update this week.  🙂

This first couple days has mostly been about getting oriented and comfortable with the tools.  I created the skeleton of the new 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 and committed it to the svn repository (and by the way, the in-progress, up-to-the-minute code for this plugin will always be available on the svn repository).  Right now it’s just a straight port of the code from mail.php and is mostly untested.

Next steps:

  • Use plugin options instead of global options
  • Add activation hook to copy existing global options over to plugin
  • Create a settings/status page for the plugin

#post-by-email, #weekly-update

Migration project for GSoC

Hello world! My name is Frederick, one of the GSoC interns who will be contributing to WordPress migrationMigration Moving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. features this summer.

A proud Canadian who grew up in Toronto and its suburbs, I am currently a bioengineering undergraduate at the University of Pennsylvania in Philadelphia, with hopes of working in the clinical and public health roles of a physician. The connection to coding might seem tenuous, but I am a firm believer in pursuing passions, despite how incongruous they may seem. As I wrote in my application, WordPress has offered me much in the way of community and inspiration, and I hope to gain better insight into my own aspirations through this internship.

Like many in the community, my involvement with WordPress has included some plugins, and sites developed for work and student organizations. Although I’ve worked on two separate open sourceOpen Source Open Source denotes software for which the original source code is made freely available and may be redistributed and modified. Open Source **must be** delivered via a licensing model, see GPL. PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher projects, this is the first opportunity I’ve had to contribute to something that can reach so many people; indeed, the past Ten Good Years have yielded not only a collection of lines of codeLines of Code Lines of code. This is sometimes used as a poor metric for developer productivity, but can also have other uses., but a huge and intensely active ecosystem of developers, designers, and users. To have the chance, even for 3 short months, to be a part of it, is both exhilarating and terrifying at the same time!

My project is to improve the migration experience and the portability of WordPress. Just the thought of moving WordPress elicits headaches because of all the things that can go wrong, as one stunningly recent discussion in the community reminded me.

For this project, I’ll be treading across both familiar and foreign territory. By current plans, I’d like to bring domain/URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org renames to the backend and WP CLICLI Command Line Interface. Terminal (Bash) in Mac, Command Prompt in Windows, or WP-CLI for WordPress., improve media handling and progress feedback in the WordPress-to-WordPress importer, and build in some semblance of 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 & option migration to the export/import workflow. (Subject to further change with notice.) More details will come in the days ahead.

I’m really thrilled to be working with all of you! In addition to my weekly updates here, my notes-to-self and handy links to TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress./source can be found on my project site. I’d love to hear your feedback here and throughout the project.

#migration-portability, #weekly-update

Summer of Code Revisions

Hey everyone! I’m Alex, one of the Google Summer of Code interns who will be hanging around here for the next couple of months. I currently study Cognitive Science at the University of Osnabrück in Germany — not too obvious to see the connection to web development there. Cognitive Science is actually splitted into 8 different modules. Neurobiology, Neuroinformatics, Philosophy, Psychology, Linguistics, Mathematics, Artificial Intelligence and Computer Science. I’m mostly focussing on the last two and even consider switching to a dual bachelor setup with Cognitive Science + Computer Science.

So, web development and WordPress are mostly just hobbies of mine — I hope to change this in the future. I did a couple of paid jobs creating WordPress websites and also have a couple of plugins in the repository. I really like the idea of open code and bringing web publishing forward this way. Not having one brand control so many websites directly is a huge advantage in comparison to other web publishing tools.

My project will be bringing WordPress native revisionsRevisions The WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision. to the theme and 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 editors. Some developers are of the opinion that it would be best to strip the code editors from WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. I think they are an important launch pad for average WordPress users to get into touch with their site’s code base. It’s a first step on the way to submitting a first 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. to core.

An obvious problem when enabling users to edit their websites code is that they might break things. Changes can result in fatal errors which might break their whole site. With code revisions it will be easy to reverse to a specific version of a faulty site when something breaks. The idea here is not to make the editors interesting to developers but to make them more comfortable to use for website owners.

Happy to work with you guys and to get some feedback. With enough eyes, all bugs are shallow 😉

#code-revisions, #weekly-update