Also we are getting close to freeze It’s…

Also, we are getting close to freeze. It’s abou that time in the release cycle when I go through all the tickets and find things I really wish we’d gotten to in this cycle. If there are any developers interested in contributing but not already working working on a team or specific ticketticket Created for both bug reports and feature development on the bug tracker., you could join my hit squad. I’ll find a handful of things I really wish someone would knock out before freeze, that I’ll promise to get committers to review when 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. is posted. If you’re interested in being part of this sprint (starts Friday, goes through freeze in about a week), leave a comment and I’ll 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.” you when there’s a list of tickets up for grabs.

Of course, ALL tickets are up for grabs, and anyone who wants to contribute to the cycle does not in any way need to wait for me to just jump in and take a stab at something!

#3-4

Team Update: Headerators

We’ve pretty much wrapped up flexible headers (#17242) for both width and height. We’re currently reviewing 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. on #19840 and hope to have that finished this cycle. Our next project will be to work with Team Gandalf to help integrate flexible headers into their theme preview.

#3-4, #customize, #headerators, #team-update

If someone who’s not already on a team…

If someone who’s not already on a team wanted to take a stab at #16434, that would be awesome. @aaronjorbin: what are you up to? 😉

#3-4, #favicon

Team Update i18n Our first two week cycle…

Team Update: i18ni18n Internationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill.

Our first two-week cycle comes to a close. Very successful, with more than 20 tickets outright closed, and more in the pipeline or nearing completion. Some highlights since last week’s update:

  • Fixed localization issues when 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 calls wp_enqueue_script() too early. #19959, #11526
  • Fixed ajax calls for IDN domains (broken in IE and Opera). We partnered with Ryan on this one, to introduce a new ‘relative’ scheme for the URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org functions. #18952
  • Hebrew letter nun no longer breaks search results. (Good UTF-8 fix.) #19033
  • We finished off #19852 and, again, #18180, #19924, and #19600
  • Commas (when used to separate tags) were internationalized. A very helpful fix for a number of locales. #7897
  • Finalized RTL styling changes in #19598
  • Made the TinyMCE spellchecker dropdown localizable #19962
  • The document for translators is current (view it here)
  • Awaiting feedback from translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. teams in #19980, #8759, and #19601
  • Ryan and I want to revisit #19599

Our next cycle will start in a few days. It will focus on the raw implementation of language packs. Dion will be spearheading the upgrade/install bits while I continue to work on infrastructure as well as the contents of said packs. For now, Sergey is looking at transliteration and character conversion, while I will work on #19597 and #15858.

#3-4, #i18n, #team-update

Team Update i18n Technically our cycle started today…

Team Update: i18ni18n Internationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill.

Technically, our cycle started today. Really though, a few of us have been hammering away at a pre-cycle cycle for the past week or so. What we’ve been doing is focusing on bugs and enhancements, some of them quite old, that will provide more targeted control to translators.

Since Dion is back in action starting next week, we’re back-dating our current cycle, if you will, to have started on January 23, and end on Feb 6. Soon thereafter a new cycle will begin, and that cycle will focus on the development of language pack installation. This cycle will continue to lay the groundwork for that to happen.

Things that have happened so far:

  • Created a document for translators, Important Changes for WordPress 3.4, which outlines all of the changes (audience: translators) what I’m about to outline for you (audience: developers).
  • Worked with Gardener Boren on splitting up the pot files and only loading adminadmin (and super admin) strings in the admin. This required some work on GlotPress, WP.org, the i18n repo, and coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. #19852
  • RTL locales are now automatically detected. #19600 and #19924
  • wp_salt() now falls back to the database for all keys and salts, and is much smarter about when it should fall back. The way we handle default secret keys is now improved and will prevent 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 errors when running a localized version of core. #19599 #14024
  • wptexturize() now has better localeLocale A locale is a combination of language and regional dialect. Usually locales correspond to countries, as is the case with Portuguese (Portugal) and Portuguese (Brazil). Other examples of locales include Canadian English and U.S. English. support for all kinds of curly quotes/apostrophes/primes. This means that a localization like Hebrew can actually turn off curly quote replacement, without needing to resort to weird hacks in their he_IL.php file. #19602
  • RSS feeds now properly reflect the language of the blogblog (versus network, site). The rss_language option is gone. #13440
  • Locales can now specify a default timezone and start of week through translated strings (rather than PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher). Also, default links can be localized, #19601
  • setup-config.php nows use a regex to replace wp-config-sample.php placeholders, preventing translators from needing to keep the placeholders sync’d. #18180
  • The non-gettexted WP_I18N_ strings are all gone. Core now leverages wp_load_translations_early(), which is carefully designed to work in the particular situations we need it. (Not for plugins, yo.) #18180
  • setup-config.php is now fully internationalized and uses wp_load_translations_early() to ensure the local package’s mo file is loaded. Between this and the secret key changes, there is no longer a file in wp-admin or wp-includes that translators need to modify in their distribution. #18180
  • Like the gardening team, we have been using Future Release and Awaiting Review as a potential gold mine, picking through all of the i18n tickets to find the good enhancements and missed bugs. So far, this has resulted in fixes for #19364, #11270, #18770, #19698, #19788, and a few other tickets now slated for 3.4.

Things that will probably happen in the next week:

  • Some decision on support for RTL in feeds. #6425
  • Word count work. #8759
  • Comma fun. #7897
  • Finishing off locale-specific modifications in core. #19603 #19601
  • Themes gaining headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. abilities, and translating page template names. Sergey is going to work on this and I’ll follow up with the makepot.php changes. #15858 #6007
  • And other things on this report, as well as other aspects of laying the groundwork for language packs.

Office Hours: Daily. We will likely set formal office hours for the second cycle as that will include me, Dion, and Sergey, and we’re evenly spaced around the world (UTC -5, +4, +10).

#3-4, #i18n, #team-update

Agenda for Dev Chat 1/25/2012

Last week was more of an old school group status check and less of a new-process meeting (my bad, I had a time conflictconflict A conflict occurs when a patch changes code that was modified after the patch was created. These patches are considered stale, and will require a refresh of the changes before it can be applied, or the conflicts will need to be resolved.). Let’s try to get back to the stuff we said we would start doing.

  • First we’ll review past meeting to-dos and make sure everything is done that is supposed to be (or see if there’s anything that is supposed to be done by now but isn’t).
  • Look at draft project schedule, edit as needed and approve. http://wpdevel.wordpress.com/version-3-4-project-schedule/
  • Check in with each team to ID state (just finished scoping, already developing, or tested and commit-ready 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. posted) and plug into schedule based on state + ux needs
  • Review each team’s planned scope/timing for 1st cycle
  • Assign days to each team for putting up weekly status posts on this blogblog (versus network, site) (and add authors to site if needed)
  • Choose ‘office hours’ for each team to be in this channel and meet to chat re progress and/or chat with community members who are working on related tickets and have questions or need patch review
  • See if there are any new sub-teams we can form to get cracking on more feature dev
  • ID to-dos for each team member for next week
  • Ticketticket Created for both bug reports and feature development on the bug tracker. discussion: people not on an assigned team who have posted a patch on a ticket can ask for coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. team to check it and give feedback
  • Ongoing discussions re feature dev

#3-4, #agenda

This Is Not a Feature List

The below notes are a discussion point of reference for today’s chat. This is NOT a feature list AT ALL. This means you, wpcandy and wptavern! 🙂 Seriously, these are just notes so we talk about stuff, not features we are building.
::::::::::::::::::::::::::::

“The ‘Customize Your Site’ Release (a.k.a. the one that helps you make things look the way you want them to look)

Features: a ‘configure and activate’ wizard (Code Name: Gandalf), new default theme, individual improvements within Appearance and/or that show up on the front end

CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Team: Ryan Mark Westi Ozz Nacin Dion Koop Cave

54 possible volunteers”
========================================

Feature Possibilities:

Twenty Twelve theme – Matt, Lance

Framework for configure and activate (theme + associated custom headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes., background, menus, widgets) – Koop, Ocean

  • live preview of theme changes
  • activate without configure
  • drag and drop sidebars/widgetWidget A WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. areas from old theme to new theme
  • configure a new theme, with preview, and then push that theme live
  • easier static front pageStatic Front Page A WordPress website can have a dynamic blog-like front page, or a “static front page” which is used to show customized content. Typically this is the first page you see when you visit a site url, like wordpress.org for example. process

Better multisitemultisite Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site support – Mark, Pete

  • improve UIUI User interface
  • networknetwork (versus site, blog) enable v activate (parity with plugins)
  • subdirectory installs
  • get rid of ms-files.php (performance win)
  • autocomplete usernames or site names for network adminadmin (and super admin) – Drew, japheth

Language Packs (can we find some language that makes this more understandable to the average user?) – Nacin, Dion, Sergey

Project: PinkPonyPress

  • MVC
  • Database abstraction
  • Smarty templating

Better theme finding – Helen, Mike S

  • infinite scroll on themes screen
  • multiple screenshots per theme

Better widgets – unassigned

  • widget area locations
  • widget preview, explicit save
  • clean up widgets screen, make it more streamlined

Better headers – Aaron and sabreuse

  • variable height
  • choose from media library

Better backgrounds

  • choose from media library

Settings

  • title tagtag A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.) as a setting instead of owned by theme – Cave, Boren
  • 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. description tag in general settings – Cave, Boren

Media

  • links in captions azaozz
  • imgmagick color profiles?
  • gallery wysiwygWhat You See Is What You Get What You See Is What You Get. Most commonly used in relation to editors, where changes made in edit mode reflect exactly as they will translate to the published page. if someone works on it

Editor

  • TMCE improvements – azaozz, stas

Mobile

  • Work well in iPad/Fire (responsive CSSCSS Cascading Style Sheets.) Azaozz, georgestephanis
  • XML-RPC Westi, Max Cutler, Marko (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. focus)
  • XML-RPC Joseph, Eric Mann (Bugs/features focus)

Master Gardening – Ryan, Jon Cave

#3-4, #agenda, #customize

Dev Chat Notes for January 4, 2012

When we talked about process in today’s dev chat, one thing I forgot is that at coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. meetupMeetup All local/regional gatherings that are officially a part of the WordPress world but are not WordCamps are organized through https://www.meetup.com/. A meetup is typically a chance for local WordPress users to get together and share new ideas and seek help from one another. Searching for ‘WordPress’ on meetup.com will help you find options in your area. we agreed that we should post the notes and action items from each dev chat, then review the action items at the beginning of the following week’s chat to keep track of things. So here goes!

Today’s meeting focused on the process to be used for the 3.4 dev cycle and the overarching concept of the release scope. To read through it line by line, see the IRC logs for the January 4, 2012 #wordpress-dev chat.

Core team presence: Jane, Ryan, Mark, Nacin, Koop, Dion. Late arrivals: azaozz, duck_. Absent: westi, matt.

Agenda: Review new process proposal that came out of Tybee core meetup, discuss; discuss potential focus for 3.4 release cycle; get statements of interest from people interested in taking more formal contributor role in this release.

Process

At Tybee meetup, I proposed we experiment with our process to try and overcome some of our historical downfalls (lack of good time estimation, resource bottlenecks, lack of accountability, unknown/variable time commitments/disappearing devs, overassignment of tasks to some people, reluctance to cut features to meet deadline), and the core team worked as a group to come to the following process proposal.

Pairs/Teams

  • We’ll divvy up feature development in pairs/small teams rather than assigning anything to one person. Will hopefully lead to better code, happier coders, and more accountability.
  • Each pair/team will ideally have a lead/committercommitter A developer with commit access. WordPress has five lead developers and four permanent core developers with commit access. Additionally, the project usually has a few guest or component committers - a developer receiving commit access, generally for a single release cycle (sometimes renewed) and/or for a specific component. teaming with up-and-coming contributors who want to commit to working on something specific.  Leads, committers, and trusted core contribs will be assigned to a team. Newer contributors can volunteer to work with a specific team but probably won’t be part of the core pair if we’re not familiar with your work yet. This will hopefully make it easier for people to get involved and make connections with the core team instead of lingering unnoticed on a ticketticket Created for both bug reports and feature development on the bug tracker. for months at a time.
  • Each team is responsible for their feature being delivered on time and meeting interim deadlines (scoping, blogblog (versus network, site) posts, posting patches, etc.).
  • Each team will only be allowed to claim one feature at a time, and may not claim another until the first is complete. No more claiming multiple features and working on them simultaneously.
  • If a partner/team member goes MIA, rest of team needs to find out what’s up, and if something is seriously wrong, escalate to my attention.
  • We’ll have a list of who’s working on what worked into the 3.4 schedule page.

Schedule

  • 2-week cycles, no soft edges. Every two weeks there is a bit of discovery, a chunk of development, and a period of testing/fixing within the team.
  • Overlapping team cycles. The 2-week cycles will start on a rotating basis so that teams will be in different phases at all times, allowing for fewer bottlenecks and a greater ability to weigh in on assorted projects. In between each cycle will be several days dedicated to TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. maintenance/bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes and tickets related to that team’s project, so that casual contributions won’t pile up waiting for a committer to take a look.Proposed graduated schedule diagram
  • Every week, the pair/team must post a progress report to wpdevelwpdevel Formerly the development updates P2 blog at wpdevel.wordpress.com. It is now make/core and resides at make.wordpress.org/core. (once we have team assignments, we’ll make a schedule for this, like we did with gsoc student posts).
  • At the end of the two week cycle, team must deliver their scoped deliverable (generally 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.). If they are late, a warning will be issued. If they miss the deadline on 2 of the cycles, the feature will be reconsidered for inclusion in 3.4.

Time Commitments, Time Tracking

  • Each team will estimate how long each feature should take (# hours, # days – estimate both total time working on it, and how long that will be spread over based on team member schedules).
  • We’ll have some mechanism for reporting time spent on the feature so that we can see how our estimates compare. Not sure if this will be manual or if we’ll use a trac 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. Investigating options now. Individual “it took this long” stats will be private, but the aggregate “this feature took this long” will be public. This will remove any reason to fudge the time reporting out of fear of looking too slow.
  • Like in any job or volunteer gig, we’ll ask people who are assigned to teams to make a specific time commitment per week to working on core in their team. We understand that circumstances change and the time commitments may need to be adjusted along the way, but this is also intended to help us do a better job of preparing scope and using stats to see how we did. If we’ve scoped features that look like they’ll require a total of x hours per week but we only have y in time commitments, we’ll know up front to start trimming scope. Note: making a formal time commitment will not be necessary for casual contributors, only those assigned as an accountable party in a pair/team.
  • Each two-week cycle will be another chance to get better at estimating how long things will take, and over time we will improve at this as a group.

Scope

3.3 was in some ways a multi-featured mess without a unifying theme. This meant lots of disparate stuff going on at once, and a number of features getting pulled due to timing. We want to get back to the idea put forth a year ago about having one overarching concept/goal/theme per release, that all new feature development fits into. We agreed that 3.4’s “theme” would be, “Making it easier to make your site look how you want it to look.” Shorthand: Appearance/switching themes. The idea is that a combination of front-end features, dashboard features, and under-the-hood improvements all tied to managing your site’s appearance will be the focus of 3.4. It will also include smaller things that don’t live in the appearance section but are related to the overarching goal, such as making it possible to have links in image captions. Make sense?

The individual features will be selected next week, and the proposed list of possibilities will be put up before then in a separate post. We’ll figure out teams, everyone will do their scoping exercises for the features they are interested in working on, and then next week we can hopefully start nailing down who’ll start with what and get the final project plan in place for a dev cycle start the following week.

High-level, the features would likely include: a theme-setup wizard that would incorporate an option for configuring all the appearance-related stuff before activating a new theme (speaking of, Twenty Twelve is targeted for 3.4), and then specific improvements around menus, widgets, backgrounds, headers, easier static front pageStatic Front Page A WordPress website can have a dynamic blog-like front page, or a “static front page” which is used to show customized content. Typically this is the first page you see when you visit a site url, like wordpress.org for example. process, multisitemultisite Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site appearance management, etc.

Choosing Teams

This isn’t gym class; don’t be scared. This is, as stated before, mainly about accountability for the core team. In this cycle, anyone paired with a lead should hopefully be able to lead a pair/team in 3.5, and on and on, so we wind up with lots of experienced teams in the mix. For now, that list is fairly short, but if you are interested in having an official assignment or team designation: Fill in this short survey.

As we divvy up leads and committers we’ll keep your request/offer in mind. If we haven’t seen much code from you, you might want to throw yourself into bug patches over the next week or two so there are some examples of how you approach core code available. Anyone not on a team can work on any ticket and/or bug, and can confer with the appropriate team or with Master Gardener Ryan Boren for assistance as needed.Â

Tentative teams so far: Nacin/dd32/Sergey on language packs, Mark/Pete Mall on multisite, Koop/ocean90 on wizard framework. People who already expressed interest in working with a team or making a time commitment: DH-Shredder, jkudish, helenyhou, drewapicture, MasterJake, tw2113, trepmal, japheth, sabreuse, jorbin, MarkoHeijnen, josephscott, maxcutler, aarondcampbell.

We’ll regroup next week to flesh out the scope.

Action Items

  • If you are interested in being on a team and/or making a time commitment, fill in this survey – all devs
  • Figure out core team pairings – core team
  • Figure out best time tracking solution – Jane, Nacin
  • Work out initial possible 3.4 features – Jane (1st draft from meetup notes), core team (catch any misses), everyone (brilliant additional suggestions)

In case it escaped you, this is a pretty giant change from how we’ve done development in the past. It’s a risk. It could turn out to be the best thing we ever did, or it could crash and burn. Let’s all try our best to make it super awesome!

#3-4, #dev-chat, #process, #scope

For today’s dev chat a whiteboard for reference…

For today’s dev chat, a whiteboard for reference:

Proposed graduated schedule diagram

Proposed graduated schedule diagram

Notes to self to remember for process chat:

  • process
  • pairs/teams
  • accountability
  • estimating time for tasks
  • statement of time commitment in advance/updates when changes
  • weekly pair/team blogblog (versus network, site) posts

#3-4, #agenda

In tomorrow’s dev chat we will start discussing…

In tomorrow’s dev chat we will start discussing scope for 3.4. Note: we will not be talking so much about specific features/tickets as about choosing the unifying theme for the release and identifying what kinds of things fit under that umbrella. We’re still planning for the official cycle to begin mid-month.

#3-4, #agenda, #scoping