The Community Summit Travel Assistance program still needs your support

There are less than 30 days until the 2017 WordPress Community Summit, and we are still looking for your support with the Summit’s travel assistance program.

This year we are expecting contributors coming from Zimbabwe, Thailand, Costa Rica, Philippines, USA and all over the world. Most event costs for the 2017 WordPress Community Summit are being paid for by WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. Europe 2017 (Thank you WordCamp Europe!!), however we still need to focus all our efforts on raising the remaining funds for the summit’s travel assistance program to ensure we can bring these active contributors together.

So far, we have received a great support from the community. However we still need an extra push to guarantee the success of this program.

If you’d like to sponsor the Community Summit, check out the Call for Sponsors and sign on as a sponsor. We will be more than happy to get back to you with all details.

Thanks for being the part of the WordPress 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. Project!

Community Summit 2017 Sponsors

The WordPress Community Summit only works because of the participation of our amazing community members. This year we are expecting contributors coming from Zimbabwe, Indonesia, North America, Japan and all over the world.

WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. Europe covered mosts of the costs for the 2017 WordPress Community Summit (Thanks so much!), however we also needed to raise money to subsidize travel expenses for some of our community volunteers who don’t get paid for their work on WordPress and/or whose travel expenses are significantly higher than those living in Europe.

The following people sponsored this Summit and helped to build the future of WordPress 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. Project.

Sponsorship Levels

Gold

Bluehost has been a WordPress partner since 2005 and powers over 1 million WordPress sites worldwide. Their objective is to help customers, whether novice or pro, create a thriving online presence at an affordable price. With a team of in-house tech experts available 24/7, Bluehost dedicates time and resources to providing the best support and services in the industry. Join millions of other site owners and see what Bluehost can do for you and your online presence.

Bronze

Human Made is a globally distributed WordPress development agency specialises in high-end WordPress development and consultancy for enterprise & big media.

Our knowledge of WordPress is extensive: many humans have been involved with the WordPress open source project for years, some since its very inception. Individually, we are skilled developers, driven project managers, dedicated account managers, organised event planners, and insightful product makers. Together, we are a friendly, enthusiastic, and approachable team, dedicated to finding problems, big or small, and doing what we can to fix them.

 

Since 1997 DreamHost has helped individuals, small businesses, entrepreneurs and developers the world over bring their dreams to life on the Internet. From domain registrations to traditional web hosting and highly-optimized managed WordPress hosting, more than 400,000 customers trust DreamHost to be their online home. DreamHost supports the WordPress project and community with dedicated resources and a passionate team. Packed with excellent value, DreamHost is a great place to launch a blog, website, or online application into the stratosphere!

 

At YITH we develop innovative WordPress themes and plugins for WooCommerce based sites. For years our philosophy has been based on simplicity and effectiveness as basic concepts required in any professional online business.

Our crown jewel, that makes us proud, is our high-quality support service, through which we take care of our customers day-by-day, never as a number, but as people with faces, names and a personal history that we deeply care for.

Individual

Ahoy! We are the pirates from ThemeIsle who believe that WordPress themes don’t need to be boring. That’s our primary motto and we’re doing everything we can to prove it—starting from our involvement in the community to developing Zerif Lite, one of the most popular themes out there.

 

SiteGround is a leading hosting provider internationally recognized for their unique approach to hosting. With a focus on performance, security and unmatched customer service, they provide solutions to protect your website from hacks and invented new technologies that can make your website run over one hundred times faster.

 

WP Site Care was founded in 2012 and was started with the focus of helping high profile bloggers and small business succeed online. We offer support and maintenance services for WordPress, along with a lot of other odds and ends. Our goal is to make sure you’re working on the business that you love, while we lift the technical burden behind the scenes. For less money than one part-time employee, you can have the technical expertise of our entire team, whenever you need help most. We’d love to talk more if you need a technical team that truly cares about the success of your business!

 

Thanks again to all these amazing companies who are contributing to the future of WordPress and its Open Source community!
We still haven’t covered the whole Travel Assistance Program, so if you’d like to sponsor the 2017 WordPress Community Summit, check out the Call for Sponsors and sign up. We will be more than happy to get back to you with all details.

WordPress Community Summit 2017 announcement

The 2017 WordPress Community Summit (CS) will take place on Tuesday-Wednesday, 13-14 June, before WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. Europe in Paris, France and it’s a by-invitation conference.

The main purpose of the summit is to move the project forward before and after the event, with the event being a milestone in a larger set of work.

With this main goal in mind, we’ll touch base with all team reps  to figure out which of the topics proposed can be handled beforehand, and come up with topics that would be:
1) of importance to the project as a whole
2) would benefit from cross-team collaboration
3) will leave us in a better position than when we started

In order to get this goal, we’re asking all teams to figure out which topics really need an in-person planning day, and then start working on as many of these remaining topics as possible online and before the event. This way, we’ll be able to loopLoop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. back in May to see if there are any obstacles for these goals to be achieved by your team and to identify better which cross-team collaboration is needed, anything we can do to help move things along!

So who is invited?

Based on the topics proposed, the nominations posted by all make.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/ team reps, and those topic applications received through the sign-up request form, a committee of experienced team leads have reviewed the total list of nominations. This committee voted, taking into consideration involvement with the WordPress project, relevance and representation of different points of view for the topics listed, diversity, company for having a wide number represented, location for representing different origins with active communities.

The selected participants will receive an email or 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/. message from their team reps or me during the next week (by March 29th at the most) with more details and with a RSVP link to confirm their attendance. The final list of attendees will be posted in this p2 blog as soon as we receive all RSVP.

List of volunteers to help with the organization of the event

The following contributors will be contacted via WP Slack at the end of next week to join the current organizing team to get the tasks done for the event – thanks for your help!

  • Daniel Bachhuber – @danielbachhuberCLICLI Command Line Interface. Terminal (Bash) in Mac, Command Prompt in Windows, or WP-CLI for WordPress.
  • Milana Cap – @milana_cap – Docs
  • Mika Epstein – @ipstenu – Plugins
  • Bet Hannon – @bethannon1 – Support
  • Cate Huston – @catehstn – Mobile
  • Marius Jensen – @clorith – Support
  • Tammie Lister – @karmatosed – Design
  • Mayo Moriyama – @mayukojpn – Community
  • Mike Schroder – @@mikeschroder – Hosting
  • Samuel Sidler – @samuelsidlerMetaMeta 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.
  • Akira Tachibana – @atachibana – Docs
  • Jenny Wong – @miss_jwo – Community
  • Petya Raykovska – @petya – Polyglots

*Note: It’s been a very hard task winnowing the nomination lists, but the capacity and the nature of this event is to be as small as possible for the level of interaction needed. All teams will post the notes of their discussions at the end of the Community Summit in this blog and on June 15th (next day), all contributors will have a working day during the WordCamp Europe Contributor DayContributor Day Contributor Days are standalone days, frequently held before or after WordCamps but they can also happen at any time. They are events where people get together to work on various areas of https://make.wordpress.org/ There are many teams that people can participate in, each with a different focus. https://2017.us.wordcamp.org/contributor-day/ https://make.wordpress.org/support/handbook/getting-started/getting-started-at-a-contributor-day/., so don’t hesitate to sign-up to it and to make WordPress better all together.

Call for Community Summit Travel Assistance Sponsorship

As the name suggests the Community Summit only works because of the participation of our amazing community members. But not everyone in our community has the financial support of their employer or the money to pay their own way. Without them we’d be losing out on input from people who are necessary to the conversations we will have at our upcoming event.

With that in mind we are opening a call for 2017 Community Summit sponsors to ensure that we meet our goal of Community inclusion. Most event costs for the 2017 WordPress Community Summit (venue and catering) are being paid by WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. Europe 2017 (Thank you WordCamp Europe!!). This allows us to focus our fundraising goals on supporting the Summit’s much needed travel assistance program, allowing us to subsidize travel for volunteer WordPress contributors from around the world who would not otherwise be able to attend.

If you’d like to sponsor the 2017 WordPress Community Summit, check out the Call for Sponsors and sign up. We will be more than happy to get back to you with all details.

Thanks for supporting the WordPress 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. Project!

Community Summit 2017: Sign-up Request

The Community Summit unconference is the event of conversations, so the time will be dedicated to group discussions prioritizing topics or tasks which are sensitive enough to specifically require in-person discussion and of importance to the 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. project and plan for the coming year.

We know that lots of people contribute to the success of WordPress in ways that don’t fit into our current set of contributor teams, so we’ve also reserved some spots with those contributors in mind.

Summit attendees will be selected based on what topics are identified by contributor teams as sensitive or contentious enough to require an in-person discussion to resolve them. Or if you wish to submit a discussion topic for the 2017 summit, please fill out the form below. Note that you can nominate yourself or any other person who you think is required to reach agreement on the issue.

We’ll create a committee with all wp.org team reps to select the topics and participants submitted through this form and we’ll contact the selected attendees before March 15th.

Note: Promotional activities of any kind will not be welcome.The entire event is dedicated to the WordPress open-source project and its future.

If you’d like to submit a topic to be discussed at the summit, fill out the form here.

Update on March 7, 2017: This survey is now closed.

Notes from Eliminating Pain when Changing Themes discussion

One of those frustrating issues. 1) Target the problems and 2) propose solutions.

Nothing works when installing a new theme. Doesn’t look like the picture. Takes time (a couple of hours even) to get it set up. How can the theme switch be minimized so that the new theme contains the old site content without any additional work?

Chris: Problem is assumptions. The assumptions we make only fit to a certain categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. of themes. Inconsistincies crop up and bad things happen then. There’s not an ability for an admin to change something and not modify the front end for visitors. A theme “trial run”. CustomizerCustomizer Tool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings. does this a bit, but not to a great extent. This wouldn’t work for Chris’s complex theme.

Chris: If there was a way to start up a trial run, and then push it live when it’s ready.

Clay: Widgets are the biggest issue. Switching themes puts all the widgets in the unused widgets section and scatters them.

IDEA: Storing groups of widgets to allow for dropping them in after changing themes.

Michael: Allowing a theme to define a primary 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. area. Most themes will have that in the sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme., but in some cases could be a footer or otherwise. Skip the step for at least one widget area.

Clay: Might not need much of a new UIUI UI is an acronym for User Interface - the layout of the page the user interacts with. Think ‘how are they doing that’ and less about what they are doing., really.

Now discussing menus and how they behave. Builder, for instance, can have many layouts and change things. Since changes in recent versions, child themeChild theme A Child Theme is a customized theme based upon a Parent Theme. It’s considered best practice to create a child theme if you want to modify the CSS of your theme. https://developer.wordpress.org/themes/advanced-topics/child-themes/. changes when using the same sidebar IDs scatters widget setups.

“Every widget be shufflin’”

Moving away from widgets. What about when a featured imageFeatured image A featured image is the main image used on your blog archive page and is pulled when the post or page is shared on social media. The image can be used to display in widget areas on your site or in a summary list of posts. call is made and there isn’t a featured image set? What should we do?

IDEA: A fallback, designed specifically for those cases. Apparently Genesis does something similar by declaring a fallback image in the theme folder. To avoid including multiple sizes, Michael suggests using media sideload to move the image over into the WordPress media section so resizing can happen natively.

Chris: iThemes did an editor-only thumbnail image that tells them there is no image there, but they can add one if they want. And that they are the only ones to see the image.

Michael: A user suggested a UI for quickly adding featured images to posts. Could be 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 territory.

Problems so far boil down to widgets and featured images.

Syed: Moving from a framework theme to a dot org theme will confuse people. From many things/screens to something simpler.

Chris: We have pressure from customers to do that kind of stuff.

Syed: WooDojo, for instance, solves the problem of duplicating lots of code in a bunch of themes. Or at least, allowing users to swap themes and keep coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. functionality.

Ryan: TGM Plugin Activiation class, dropping notices within statuses.

Michael: I hate when themes put the home page template in the page template. For one thing, which theme screenshot do you display if you have a front page and a blog page? Two screenshots? Multiple image UI? Or on that page, since the dashboard knows the setting that is chosen, just display the one that’s selected. So, include two screenshots, one for each type. Naming convention maybe?

Chris: We’ve trained people that themes are easier than plugins. It’s understood that plugins are a bit more work. But for themes the expectations are different.

Michael: JUX is a publishing platform on the front end that loads content on the get-go every time. He doesn’t like it, but it’s kind of neat he says.

Chris: Perhaps multiple screenshots showing different possible setups is one way to approach the problem.

Is there any way that we can track statistics for how widgets are used?

Action Items

  • Start a ticket for the issue when widgets are scattered after a child theme is modified, when using the same sidebar IDs.
  • Start a tracTrac Trac is the place where contributors create issues for bugs or feature requests much like GitHub.https://core.trac.wordpress.org/. ticket for grouping widgets to make swapping them between themes after switching themes.
  • Start a discussion around a plugin for quickly adding featured images to a bunch of posts.

Attendees

How WordPress Businesses Can Give Back

Simon Wheatley – If Simon runs into a problem in coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. then he tries to create a tracTrac Trac is the place where contributors create issues for bugs or feature requests much like GitHub.https://core.trac.wordpress.org/. ticket and follow that through

Jonathan Davis – Shopp. Contributes bug fixes, hasn’t managed to get a ticket in.
Mike Pretty – Wants to work out how to work with core to create a team to work on bigger tasks.
Jake Goldman – 10up Ad hoc trac widgets, donate 50% of Helen’s time to core.
Tom Auger – Runs an agency, attends events. Wants to work to GPLGPL GPL is an acronym for GNU Public License. It is the standard license WordPress uses for Open Source licensing https://wordpress.org/about/license/. The GPL is a ‘copyleft’ license https://www.gnu.org/licenses/copyleft.en.html. This means that derivative work can only be distributed under the same license terms. This is in distinction to permissive free software licenses, of which the BSD license and the MIT License are widely used examples. his plugins
Tom Willmot –
Ronnie Burt – Edublogs no formal process, developers create bugs, focused on MultisiteMultisite Multisite is a WordPress feature which allows users to create a network of sites on a single WordPress installation. Available since WordPress version 3.0, Multisite is a continuation of WPMU or WordPress Multiuser project. WordPress MultiUser project was discontinued and its features were included into WordPress core.https://codex.wordpress.org/Create_A_Network.
John Hawkins – no formal process, runs on trunk, more of a ticked submitter instead of a patcher
Alex King – Lots of ad-hoc trac tickets, they run into a lot of edge case issues that might not be found otherwise. Have found that larger tickets can stall
Ptah Dunbar – Runs an agency, hires contractors – Has “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. Fridays” to contribute back to core but finds he ends up doing a lot of admin work.
Ron Rennick – Copyblogger Media – Does a lot of multisite testing, does a lot of testing of large new features coming in the next version (like media stuff). Self funded his way through the work to merge mu and single, it took a lot longer than expected which was tough.
Justin, iThemes – No formal core contribution policy, would like to have one.

People find that they spend to much time on admin around trac tickets and not enough on developers.

Jake shared how they started the process of Helen contributing to core, it’s driven by her passion, started as a small percentage of her time, increased over time.

Helen is not the only person that has “non-client” time, others choose to spend it on plugins etc.

It has to be driven by the person, you can’t expect all employees to contribute or to want to contribute. There is a large amount of trust. You can’t micromanage the amount of time you are allowing that person to core, it’s a privilege to be allowed to contribute to core.

Alex felt that the issues around trac tickets not being well received, abandoned etc. can put people off. It’s a worry that one of your staff spends a month of company time on a patch that then isn’t accepted. What about if core team had a better roadmap that they shared with companies, companies could then pick large items off the roadmap.

Nacin joined the discussion, was asked about assigning large tasks to agencies to work on. The point he made was that agencies would often write that feature anyway because it’s something that they need for a client site, so build that feature 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 and if it gets traction then it can find its way into core.

Why can’t core team reach out to development shops and ask them for help with specific items. Nacins point was that he wasn’t sure that agencies would want to do that. Also large feature development shouldn’t be happening behind closed doors. Also agencies could offer to help develop specific features.

iThemes shared their experience with the image uploader, they had a meeting where they brainstormed how they would fix the image uploader but they found that Koop was already working on it. They felt it would have been better if that had been shared earlier. Nacin felt that it was shared as early as it could be. Nacin talked about the menu’s code, although it wasn’t architected correctly it didn’t matter that non of the code was eventually used, it acted as a starting point which then lead to menus making that release.

Alex wanted to talk about how larger changes could be “pre-approved” so that we avoid large patches that are then left to rot.

Nacin felt that large features are a special case that don’t / can’t follow the standard processes, they really require the personal touch, chatting over a beer or pick up the phone.

People wanted to know how to get involved at the roadmap level.

The underlying issue seemed to be about the fact that core contribution is a 24/7 lifestyle which doesn’t always match with the time that an agencies developers have.

Another issue that was raised was the pushback against new features, when a core dev says “thats not going to make it in” does that mean never? Nacin recommended releasing the feature as a plugin. Nacin went on to explain the process that goes on when planning new releases. The perfect time to pitch new features is between releases, before the scoping sessions for the next release, core developers will go back and look at features that didn’t make the last release.

Jake asked about planning a cycle ahead so that agencies could assign a developer or a set of developers could work on. Nacin suggested a lot of things that could be worked on for 3.6. Can we have a roadmap of future tasks. Nacin said that trac has got too large which prevents a lot of changes that would help these issues.

Another important thing to remember is that you can give back in other ways that just code, there are a lot of administrative tasks that need doing, agencies could help create that roadmap.

One great option that should work for agencies is to run trunk and test patches against your client sites. Unit testing is another area that agencies could make a big difference, it is good for developers to learn how to write unit tests. If someone only has 3 hours per week to contribute they can still help with admin on trac or write a unit test for a specific patch. Remember that having developers working on core benefits the agency because it is on the job training.

Jake asked Helen whether the other people in the company that have contributed to 3.5 would have contributed if Helen hadn’t have been there. Helen felt that there wouldn’t have been as much contribution. Jake wondered if the fact that Helen is on the team meant that more of 10ups contributions got into core (contributions from other developers), she felt not as a lot of her stuff ends up sitting round not getting in as well.

Could we have an ombudsmen from the core team that could reach out to agencies with sanctioned features that need working on.

Nacins final point was that the number of new tickets per day was increasing at an unmanageable rate, he said we can help by testing patches and triaging tickets. He would like to see teams per component that can be in charge of triaging. Those component owners are then often given commit access for that release.

Nacin wants to build a list of future features that people could start working on, a list of easy fixes / low hanging fruit and component owners.

WP Tuts can help by posting about upcoming releases and 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.’s which raises awareness and increase the number of people testing that beta.

Nacin wanted to re-enforce that we can all contact him at any time to ask about how we can help.

Our action item is to create a mailing list for companies to discuss how they can help make each other aware of things they are working on, patches that need testing.

The Future of the Customizer

Theme Foundry currently using theme options used with back compat. Eventually, they’ll go exclusively customizerCustomizer Tool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings..

Changing the look and feel of the customizer.

Implementing controls can be challenging. Clicking through in the preview can be a challenge (which is generally refreshing bugs in custom code, not coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. code).

Customizer as a website creation wizard.

How do you get someone to fire up their website and make just enough changes so that they’re married to it?

Make this website yours.

The customizer as an onboarding tool for core.

  • Can we add the customizer to the install process?
  • Would doing so help user retention?
  • The customizer is about quick wins, and quick wins are especially important for new users.

The customizer interacting with the theme repository.

Let’s make it possible to browse and install themes in the customizer.

What else can we customize?

  • Post previews
  • Widgets
  • Menus

The customizer is more powerful when you control the presentation layer.

  • Post layout
  • In-preview UIUI UI is an acronym for User Interface - the layout of the page the user interacts with. Think ‘how are they doing that’ and less about what they are doing.

How far will WordPress core go in terms of adopting the customizer?

Other Ideas

  • User test adding a customize link to the Appearance menu.
  • Provide “starting points” for developers.
  • Offer examples and default templates for customizer controls.
  • Consider potential higher level abstractions for themers.

How can the customizer be used to improve and influence the settings 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.?

Action Items

For core:

Roadmap for allowing the customizer to support multiple instances, which allows it to be used in any use case, instead of just theme switching.

For theme review team:

  • Recommend customizer usage in the theme review guidelines.
  • Work on best practices for theme developers.
  • Documentation and create examples.

Improving the JavaScript Proficiency of WordPress Developers

In attendance: koopersmith, Chris Hobertsen(?), getsource, George Stephanis, duck_, Kailey, lessbloat, Andy Peatling, Dougal, azaozz, Kurt Payne, Matt, Amy Hendrix, Tenpura, Koke, mdawaffe.

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/. in WordPress – Woo!

Koop has found that most WP/PHPPHP PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML. http://php.net/manual/en/intro-whatis.php. devs are not comfortable with JS. What are the causes?

  • History as a language.
  • Grabbing what works.
  • Browser incompatibility.
  • Programmers with strong belief in good/clean code now have a bad opinion of JS.

All WP devs should feel comfortable with JS: reading certainly, writing too. This includes familiarity with JS libraries we use: jQuery, Backbone.

Other sources of confusion:

  • Prototypal inheritance
  • event based
  • functional programming.

How to teach: make developers use it. WP is including more and more JS APIs that devs will need to get comfortable with.

It would be helpful if everything in WP is consistent. There are many different ways of writing JS in WP.

Koop said that there is a one true way and we’re working on standardizing that and getting all the old stuff cleaner. He suggested a style guide for the contributor handbook.

Shredder noted that the JS in cored didn’t fit the original PHP style.

Matt asked who has contributed a JS patch to WP? ~90% of the table. He said that it’s important that the JS stuff is as inclusive as our PHP code.

How about Backbone: ~15% of the table.

Underscore: ~20%.

Backbone is the future of MVWTF in WP.

Matt said that we adopted jQuery as it makes JS easier for us PHP devs. Backbone hasn’t made anything easier for us WP devs since WP isn’t MVC based anywhere else.

Koop said that WordPress sort of is MVC based, we just don’t notice. Posts are not tied to themes. Our JS should be similar.

Ruby/Python: 35%

Underscore adds more functional methods to JS. FilterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output., first, iteration, mapping, flatten, event throttle, event debounce + simple templating. Good utility library: well documented. ~800 lines.

Backbone is built on top of Underscore. There are conventions that keep your APIs consistent. ~800 lines. Event handling. Models: Key Value + Listeners (change:key_name). Simple means of interacting with REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/. (not used much by WP since we have no REST API).

Collections: Ordered list of Models. filter, first, etc. Events for adding/removing/changed models. “Tell me any time any model changes it’s X”.

View: Convention: Root element (specific element, tag/classname so that it will build for you), render method that does nothing by default. You are responsible for writing to fill up your root element with stuff. Root element’s parents, DOM irrelevant. Just build it, listen to events, whatever: don’t care where it is: ensures your logic is compartmentalized and specific to your task at hand.

Lessbloat: What’s a simple example?

Duck: The 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. documentation isn’t good enough. We need this explanation of Koop’s for everyone.

Peatling: I know a good tutorial: http://bit.ly/zT9WyG

Matt: When we build an interface with Backbone, how do we make it accessible and degrade down to HTMLHTML HTML is an acronym for Hyper Text Markup Language. It is a markup language that is used in the development of web pages and websites.?

Koop: Same principles: make sure tab indices make sense, etc. Many platforms require you to “pollute” your HTML with custom attributes etc. Beauty of backbone is that it’s minimal and doesn’t invade your HTML. You control the render(), you pick your tempting engine, etc. A designer can do CSSCSS CSS is an acronym for cascading style sheets. This is what controls the design or look and feel of a site. without having to know backbone. Not that much magic going on.

In terms of degrading to no-JS experience, you can cross compile templates in both JS and PHP. WordPress doesn’t do that much, largely because where we currently use it is JS only anyway: TinyMCE, CustomizerCustomizer Tool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings., etc.

We shouldn’t be using Backbone for everything, but it’s a good tool.

But for media, for example, if we didn’t use backbone, we’d have ended up writing backbone anyway. Backbone’s knocked out the edge cases, has documentation, has community. Using it has sped up WordPress development. We just need to get people used to it and get more people contributing.

Lessbloat: Take media as an example. Is there one small piece of it I can look at to teach myself what’s going on?

Duck/Koop: Models are the best fleshed out. Attachment Model is a good one to check out.

Old Bad way: AJAX returns HTML for attachment. Have to parse that, regex, string compare for errors, never stored anywhere convenient client-side, …

New Good way: AJAX/Deferred returns JSONJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML.. Putting that in a Backbone model makes it easy to keep track of everything. Change the model in one place, easy to update all the dependent views.

There exists a WP PHP code style. Is there a styleguide for JS? (Koop: Yes – working on getting it in the handbook).

What about JavaScript Unit Tests?

Koop: I would love it. I suggest QUnit: good for browser unit testing, easy to implement/use.

Our build process is very simple. Just minifies. It’d be cool if we had something more sophisticated: grunt (Ben Alman). Integrates with test suites. Koop talked to Ben at the jQuery summit about blockers for using grunt in WP. Will be resolved in the next release. Also wants to show how 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/themes can use grunt too.

Old school devs: don’t want to touch JS.

Koop: Agreed. We want to expose people to these new tools and show them WordPress is doing exciting things.

Matt: We have this exciting thing, but only 3 people are doing anything with it – that’s the problem.

LESS/SASS precompiling? Maybe. There is a barrier to entry. We already have a perception that JS is either ugly or hard 🙂

Koop: The problem may not be JS, but that where we’re using JS right now is this big new thing: Media. How many people would be comfortable building that from the ground up? Maybe iterations, when it’s already built, will encourage more involvement from more community members.

We’ve tried to write really good inline docs, good commit messages, etc. so that people can pick things up more easily.

Koop wants to take a pass through all WP JS and document them inline.

Koop showed us Docco for JS. Matt said that we should have that for PHP too. Easy to see what code isn’t documented: too much whitespace!

Kurt suggested a make/js blog?

Koop has thought about it.

Matt: Why not just post to coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.? Don’t separate.

They agreed to use a JavaScript tag?

Shredder: What about mentorship? That was super helpful for me when I started in WP. Can we pair less/more experiences JS folks up?

Koop would love to mentor interested people to bring them up to speed.

Matt: Yes. Expand our workforce: it’d be nice to get more than one JavaScript heavy feature per release.

Kurt: We don’t have a real QA system. Is that the bottleneck with JS features?

We’ve never had QA for anything – probably not the issue.

Koop: we do need more tests. Headless browser, etc. Use the tools that already exist rather that building our own system. Higher learning curve, but faster in the medium/long term.

Action Item

Post to “javascript” tag in make/core.

Other Ideas:

  • Links to resources
  • JS Styleguide in handbook and Codex
  • Best practices on passing data back and forth between PHP and JS.

WordPress Global Communities

Attendees:

Andrea Middleton, Takayuki, Remkus, Katia, Eric Mann, Viper, Ze, Xavier, Scribu, JJJ, mitcho (notetaker), Jorge Bernal, Scott, Tenpura

Discussion Notes

The first suggestion for visibility of WordPress as a global solution was to create something like global.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/, which doesn’t exist right now. Its objectives would be to present how WordPress exists around the world, where the latest localized versions are available and who is involved in which language.

The user profile issue was raised and explained where we’re at by JJJ: it’s originally a project of Automattic, uses BuddyPress and the profile page information is pulled in by feeds. He also mentioned that it’s slow and prone to crashes.

The idea is that all activity, including posts in international forums, translation work and event organizing should go into the wordpress.org profiles.

Zé noted that we are on hold as far as new international forums are concerned until we can figure out how to integrate bbPressbbPress Free, open source software built on top of WordPress for easily creating forums on sites. https://bbpress.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) into the Rosetta sites.

The problem isn’t just one of profiles, however.

There is often the need for a visitor, beginner or not, to be able to look at one of these regions/countries where multiple languages exist, and see what the status is and what the community is like. Right now, if you want to know who’s the Russian person in charge, you have no idea.

Also, translators sometimes feel left out of some decision-making in coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress., despite being often (if not always) the first contact in local communities. According to Xavier, one of the issues is that many documents (such as WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. guidelines, handbooks and so on) are in English.

Translations need to be recognized as equally valuable contributions to core. Some formal liaison maybe necessary; in fact some language communities already have unofficial leaders and liaisons with core or even Andrea. One question was raised if one problem might be that there needs to be an “owner” of a language/local community? Some places have that, others don’t.

Following that, the suggestion was made to have group profiles by region. Zé mentioned that it might not be feasible, as the relationship between languages and countries is not one-to-one, nor is it one-to-many, but rather many-to-many. It would be better to have profiles searchable by region and language.

This all could be helped by having a place for communities to live inside of WordPress.org, as opposed to meetup.com or other solutions. JJJ mentioned that BuddyPress could be used for this.

Rosetta sites: Even though WordPress.org (in English) is now sexier, and the roadmap seems to say that it’ll be even more so, Rosetta sites are three years behind. Cátia made it clear that it is very important to give more freedom to Rosetta administrators; it can be frustrating to not be able to do what you want.

As the discussion veered towards languages, Zé reminded that communities can be different things and most of the time are actually a mix of countries speaking the same language, different languages spoken in the same country and so on. This is not clear to visitors right now. As an example, the ISO code for Georgian inside Georgia (the country), is not the same as the code for Georgian spoken outside the country. This could mean two language communities and one country community ir any combination of those.

Historically, however there seem to be not many formal connections between various communities in different varieties of the same language, e.g. Portuguese from Portugal and Portuguese from Brazil.

Finally, many of the community sites are not on the WordPress.org infrastructure. They may even look like they are, but their domain is mapped. However, to be able release a language pack (and core upgrades), they need to be on xx.wordpress.org (Rosetta).

Forums (or maybe even a P2P2 P2 or O2 is the term people use to refer to the Make WordPress blog. It can be found at https://make.wordpress.org/.?) for language/translations, per locale, would be a good place to have discussions for that community. Also, those contributions could feed into a user’s profile. Xavier warned that many communities have totally different sites, and this content archive is important.

Cátia asked the question about the Foundation and transparency and representing WordPress inside a community; what should a community leader do if people don’t follow guidelines? Are there “semi-official” capacities in different places? There seem to be none. Andrea said that right now, in core, we have a team repTeam Rep A Team Rep is a person who represents the Make WordPress team to the rest of the project, make sure issues are raised and addressed as needed, and coordinates cross-team efforts. system, which is transparent, but none of these people then represent the foundation. A community leader/rep’s importance is determined by the time he puts in, and the better he becomes at his tasks, i.e. “if you’re here (at the summit), it’s because you are perceived as a leader”.What about a team rep system around communities or languages?

Zé suggested there should be a global/international P2/make/forum site, written in English, but global. A place where polyglots can voice their opinions on the global reach of WordPress and how to make it more visible. The Polyglots P2 is not the place to do that as it is where Nacin and Zé deal with technical issues and fix various stuff.

The kinds of questions discussed there should be, for instance:

  • How do we make reps in a region legitimate?
  • Viper: What happens if a community ends up creating a fork? A different looking site?
  • How do we reach out to those communities and make them more legitimate?
  • How do we make reps in a region legitimate?
  • Should we implement voting per language community like for the other team reps? (Cátia and Remkus noted that voting might be different for other cultures)

The general consensus:

  • Having profiles and a make/global site is a good start
  • The other stuff is more about the particular community itself
  • Communities need to be made visible and open
  • Transparency is important
  • “This is how I got to be Nacin” would be very helpful for local communities/international contributors

Summary

  • There were lots of discussions of where international conversations occur, about transparency, and on how to get involved.
  • Profile integration and a make/global, or similar, were seen as a good start
  • There should be more discussions about community structure and legitimacy

Action Items

  • Create make.wordpress.org/global
  • In the long-term: beef up profiles to show who is active in language communities and region communities

(if people want to talk about technical stuff, they should talk to @JJJ)